【C语言】数组(一维)详解,手把手教你,保姆级!!!

目录

数组的概念

数组的创建

数组的初始化

数组的类型

数组使用下标

数组的打印

数组的输入

数组的储存

总结


数组的概念

数组是⼀组相同类型元素的集合;

从这个概念中我们有3点拓展:

1,数组中存放的是1个或者多个数据,但是数组元素个数不能为0;

2,数组中存放的多个数据,类型是相同的;

3,数组分为⼀维数组和多维数组,多维数组⼀般⽐较多⻅的是⼆维数组

数组的创建

type arr_name[常量];

存放在数组的值被称为数组的元素,数组在创建的时候可以指定数组的⼤⼩和数组的元素类型

 1,type 指定的是数组中存放数据的类型,可以是: char、short、int、float 等,也可以⾃ 定义的类型;

2,arr_name 指的是数组名的名字,这个名字根据实际情况,起的有意义就⾏;

3,[] 中的常量值是⽤来指定数组的⼤⼩的,这个数组的⼤⼩是根据实际的需求指定就⾏;

比如:统计一个班的人数有50人;

int count[50];

当然我们也可以根据需要创建其他类型和⼤⼩的数组

char ch[10];
double arr[20];

数组的初始化

有时候,数组在创建的时候,我们需要给定⼀些初始值值,数组的初始化⼀般使⽤⼤括号,将数据放在⼤括号中

//完整初始化
int arr[5] = {1,2,3,4,5};
//不完整初始化
int arr2[6] = {1};//第⼀个元素初始化为1,剩余的元素默认初始化为0
//错误的初始化 - 初始化项太多
int arr3[3] = {1, 2, 3, 4}

数组的类型

数组也是有类型的,数组算是⼀种⾃定义类型,去掉数组名留下的就是数组的类型

int arr[10];
int arr1[20];
char ch[10];

arr数组的类型是 int [10]

arr1数组的类型是 int[20]

ch 数组的类型是 char [10]

数组使用下标

C语⾔规定数组是有下标的,下标是从0开始的,假设数组有n个元素,最后⼀个元素的下标是n-1,下 标就相当于数组元素的编号

int arr[10] = {1,2,3,4,5,6,7,8,9,10}

在C语⾔中数组的访问提供了⼀个操作符 [] ,这个操作符叫:下标引⽤操作符 

有了下标访问操作符,我们就可以轻松的访问到数组的元素了,⽐如我们访问下标为7的元素,我们就 可以使⽤ arr[7] ,想要访问下标是3的元素,就可以使⽤ arr[3] ,如下代码

#include <stdio.h>
int main()
{
 int arr[10] = {1,2,3,4,5,6,7,8,9,10}; 
 printf("%d\n", arr[7]);          //结果为8
 printf("%d\n", arr[3]);          //结果为4
return 0;
}

数组的打印

只要我们产⽣数组所有元素的下标就可以了,那我们使⽤for循环产⽣0~9的下标,接下来使⽤下标访 问就⾏了 

#include <stdio.h>
int main()
{
 int arr[10] = {1,2,3,4,5,6,7,8,9,10}; 
   int i = 0;
 for(i=0; i<10; i++)
 {
 printf("%d ", arr[i]);
 }
 return 0;
}

数组的输入

明白了数组的打印,当然我们也根据需求,⾃⼰给数组输⼊想要的数据

#include <stdio.h>
int main()
{
 int arr[10] = {1,2,3,4,5,6,7,8,9,10}; 
 int i = 0;
 for(i=0; i<10; i++)
 {
 scanf("%d", &arr[i]);
 }
 for(i=0; i<10; i++)
 {
 printf("%d ", arr[i]);
 }
 return 0;
}

 

数组的储存

如果我们要深⼊了解数组,我们最好能了 解⼀下数组在内存中的存储

依次打印数组元素的地址:

 

#include <stdio.h>
int main()
{
 int arr[10] = {1,2,3,4,5,6,7,8,9,10}; 
 int i = 0;
 for(i=0; i<10; i++)
 {
 printf("&arr[%d] = %p\n ", i, &arr[i]);
 }
 return 0;
}

我们发现每两个相邻的 元素之间相差4(因为⼀个整型4个字节)

得出结论:数组在内存中是连续存放的;

总结

以上就是关于一维数组的内容了,具体的还需宝子们去实践,如果觉得该博客对你有用的话,希望一键三连,点个关注不迷路,谢谢支持! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/254379.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

4.raft协议及简化版raft协议

1.Raft协议介绍 这篇文章&#xff1a;百度安全验证 讲的比较详细了&#xff0c;我再以我的方式汇总一下&#xff1a; Raft协议是一种分布式一致性协议&#xff0c;比Pasox简单&#xff0c;旨在解决数据的一致性和高可用性Raft在选举中的方式&#xff1a; 所有节点相互建立连…

什么是磁钢的工作点和Pc值?如何计算Pc值?

永磁体是在开路状态下工作的&#xff0c;由于开路状态的磁体是在退磁场的作用下&#xff0c;所以工作状态下的永磁体的磁感应强度不在闭路状态的Br点上&#xff0c;而是在比Br低的退磁曲线上的某一点&#xff0c;这一点称为永磁体的工作点&#xff0c;如下图D点。 工作点与退磁…

【C语言】操作符详解(四):结构成员访问操作符

目录 结构成员访问操作符 结构体 结构体的声明 结构体变量的定义和初始化 结构成员访问操作符 结构体成员的直接访问 结构体成员的间接访问 结构成员访问操作符 结构体 ⭐C语言已经提供了内置类型&#xff0c;如: char、short、int、long、float、double等&#xff0c;但…

备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务2:离线数据处理

MySQLhttps://www.mysql.com/ 将下发的ds_db01.sql数据库文件放置mysql中 12、编写Scala代码&#xff0c;使用Spark将MySQL的ds_db01库中表user_info的全量数据抽取到Hive的ods库中表user_info。字段名称、类型不变&#xff0c;同时添加静态分区&#xff0c;分区字段为etl_da…

提高软件交付速度的6种架构策略

本文向您展示如何评估软件交付性能&#xff0c;并向您介绍可用于提高软件交付性能的六种策略。 如何评估软件的交付速度 软件交付速度能够促进业务发展&#xff0c;那么我们如何评估软件的交付速度呢&#xff1f;主要有以下4个指标 一个功能从开发到上线运营使用需要多久&#…

代码随想Day39 | 62.不同路径、63. 不同路径 II

62.不同路径 每次向右或者向下走两个选择&#xff0c;定义dp数组dp[i][j] 为到达索引ij的路径和&#xff0c;状态转移公式为 dp[i][j]dp[i-1][j]dp[i][j-1]&#xff0c;初始状态的第一行和第一列为1&#xff0c;从左上到右下开始遍历即可。详细代码如下&#xff1a; class Sol…

问卷调查结果分析指南:方法与技巧解析

问卷调查是一种常见的数据收集方式&#xff0c;广泛用于市场调研、科研、员工幸福评估等各个领域。但是&#xff0c;问卷的数据收集只是第一步&#xff0c;分析这种数据至关重要。问卷调查该怎么分析结果&#xff1f;首先要进行数据清理&#xff0c;然后对数据展开叙述&#xf…

基于Java Web的“大学生艺术节”管理系统的设计与实现论文

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对“大学生艺术节”方面的信息管理混乱&#xff0c;出错率高&#xff…

自动化测试Selenium node 配置

查看自己chrome浏览器的版本 下载chromedriver对应版本&#xff0c;下载当前版本中最大版本。 https://npm.taobao.org/mirrors/chromedriver 安装java jdk &#xff0c;版本至少1.7, 并配置jdk环境变量 以下2个文件放在同一个目录下 Cmd地址切换到第四点目录下&#xff0c;然…

Spark基础入门

spark基础入门 环境搭建 localstandlonespark ha spark code spark corespark sqlspark streaming 环境搭建 准备工作 创建安装目录 mkdir /opt/soft cd /opt/soft下载scala wget https://downloads.lightbend.com/scala/2.13.12/scala-2.13.12.tgz -P /opt/soft解压scala…

setXxx getXxx 封装

1.封装介绍 封装(encapsulation)就是把抽象出的数据[属性]和对数据的操作[方法]封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作[方法],才能对数据进行操作。 2.封装的理解和好处 (1)隐藏实现细节 方法(连接数据库)<-----调用(传入参数...) 只负责调…

【真情流露】我为什么要写一本OpenCV C++书籍

使用OpenCV契机 大家好&#xff0c;我是贾志刚&#xff0c;OpenCV学堂公众号的号主&#xff0c;从2009年开始搞图像处理到今天我已经十四年了。刚开始搞图像处理做的是生物数据分析与细胞分析&#xff0c;用的是工具跟SDK是ImageJ这个框架&#xff0c;多数算法都是我自己裸写&…

借助图形控件Aspose.Tasks,在 C# 中将 XER 转换为 SVG

Primavera P6 是一款流行的项目管理软件&#xff0c;它使用XER 文件格式来存储项目数据。 SVG&#xff08;即可缩放矢量图形&#xff09;是一种流行的矢量图像格式&#xff0c;可用于为 Web 和打印应用程序创建可缩放图形。在某些情况下&#xff0c;我们可能需要以编程方式将 P…

深度学习笔记_6经典预训练网络LeNet-18解决FashionMNIST数据集

1、 调用模型库&#xff0c;定义参数&#xff0c;做数据预处理 import numpy as np import torch from torchvision.datasets import FashionMNIST import torchvision.transforms as transforms from torch.utils.data import DataLoader import torch.nn.functional as F im…

算法模板之双链表图文详解

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;算法模板、数据结构 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. ⛳️使用数组模拟双链表讲解1.1 &#x1f514;为什么我们要使用数组去模拟双链表…

全国巡展“2024人工智能展·世亚智博会”3月上海·4月杭州·6月北京

近年来&#xff0c;我国积极布局人工智能产业&#xff0c;竞跑“未来赛道”。随着各行业、各领域对人工智能需求的日益增长&#xff0c;与实体经济深度融合的新模式不断涌现&#xff0c;形成了具有中国特色的研发体系和应用生态&#xff0c;引领着经济社会各领域从数字化、网络…

YOLOv3-YOLOv8的一些总结

0 写在前面 这个文档主要总结YOLO系列的创新点&#xff0c;以YOLOv3为baseline。参考(抄)了不少博客&#xff0c;就自己看看吧。有些模型的trick不感兴趣就没写进来&#xff0c;核心的都写了。 YOLO系列的网络都由四个部分组成&#xff1a;Input、Backbone、Neck、Prediction…

高新技术企业工时管理的挑战与应对策略

随着科技的飞速发展&#xff0c;高新技术企业已成为推动社会进步的重要力量。而在这类企业中&#xff0c;工时管理作为企业管理的重要组成部分&#xff0c;其意义也日益凸显。有效的工时管理不仅关乎企业的项目进度、人力掌控和资源合理配置&#xff0c;还直接影响到企业的研发…

centos7服务器上的文件上传到谷歌云盘(google drive)

1,下载gdrive客户端&#xff0c;Releases glotlabs/gdrive GitHub 2&#xff0c;下载完解压,并移动到cp gdrive /usr/local/bin/ 3&#xff0c;查看是否安装成功 4,添加账户&#xff0c;gdrive account add 根据链接&#xff0c;创建Client id和 Client secret 5,填写Client…

spring boot 配置多数据源 踩坑 BindingException: Invalid bound statement (not found)

在上一篇&#xff1a;《【已解决】Spring Boot多数据源的时候&#xff0c;mybatis报错提示&#xff1a;Invalid bound statement (not found)》 凯哥(凯哥Java) 已经接受了&#xff0c;在Spring Boot配置多数据源时候&#xff0c;因为自己马虎&#xff0c;导致的一个坑。下面&a…