在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
数组就是在内存空间中,开辟一个大的空间,然后再将这个大的空间均的分为若干份的小空间,每个小空间用来保存一个数据.
1). 数组的专业术语:长度:指的能存放数据的个数 下标/索引:每一个数据所在小空间的编号 元素:每个小空间里面实际存放的数据 2). 数组的声明和赋值A.声明类型 数组名[要保存的数据的个数]; 例: int scores [5]; //代表一个保存了五个int类型数据的数组,数组名为scores; char chs [5]; //代表一个保存了五个char类型数据的数组,数组名为chs; float fs [5]; //代表一个保存了五个float类型数据的数组,数组名为fs;
B.赋值a.对声明完成的数组进行逐一赋值数组名 [下标] = 数据; 例:int scores[5]; scores[0] = 100; //为下标为0的元素赋值为100 scores[1] = 1; ………… scores[4] = 100;
注:数组的下标总是从0开始,下标最大的数为数组的长度减1;
b.在数组声明的时候就初始化语法
1. 类型 数组名[长度] = {数据1,数据2,数据3,…..数据n}; 注:长度有多少个,数据就写多少个 例: int scores [5] = {90,93,23,54,65}; // 数据会从0开始依次赋值 2. 类型 数组名[] = {数据1,数据2,数据3,…..数据n}; 注:编译器会自动根据右边花括号中得数据个数确定你数组的长度 例: int scores [] = {90,93,23,54,65}; // 长度为5 char chs [] = {'a','b','c'}; //长度为3 3. 类型 数组名[5] = {数据1,数据2};//数据不足5个 例: int scores [] = {90,93}; // 这样赋值,只有下标0和1有值,分别是90和93,其他元素没有值,系统会为这些没有没有值的元素初始化为0 注:部分初始化的话,其他没有赋值的元素会被初始化为0 4. 类型 数组名[5] = { [4] = 数据,[3] = 数据,[2] = 数据,[1] = 数据,[5] = 数据}; //这种是人为的指定给下标为几的元素赋值 例: int scores [5] = {[4] = 45,[3] = 67,[2] = 89,[1] = 27,[5] = 86}; 注:很少这样用 3). 数组的取值语法: 数组名 [下标]; 例: nums [0]; //取的下标为0的元素 也是就是数组种第一个数据 nums [3]; //取的下标为3的元素 也就是数组中第四个数据 4). 遍历数组就是代表循环这个数组依次的访问每个元素
例: int scores [5] = {89,76,88,50,99} for(int i = 0;i < 5; i++){ printf(“%d\n”,scores[i]);// i的值依次是0,1,2,3,4,刚好对应上面访问的下标 } 5). 数组的越界越界:就是访问了不属于自己的空间,可能会造成无法预知的后果,要么就是破坏了别的数据,要么就是运行报错
例: int scores [5] = {89,76,88,50,99} scores[10] = 200; //越界了 6). 数组长度的公式数组占用的总字节数 / 每一个元素占用的字节数 = 小空间的个数(数组的个数) sizeof(数组名) / sizeof(数组类型)
注:sizeof不是函数,是运算符
7). 数组作为函数的参数 **********声明数组的时候是必须写长度的,但是把数组作为函数的参数时,定义形参的时候,可以不写长度,代表所有长度同类型的数组都可以传过去.
注:在C语言中,除了数组以外,都是值传递,而数组的传递是引用的传递,所以形参的值发生变化,实参的值也会发生改变;但是数组的元素就是一个普通的变量,所以如果是数组的元素作为函数的参数时,同样是值传递; |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论