C 数组
数组是一组相同类型元素的顺序集合。数组中的每个元素的类型相同。
数组元素可以通过索引访问,第一个索引值为0。
下标 数组的第n个元素 访问 0 1 a[0] (或 a) 1 2 a[1] n n+1 a[n]
一维数组的声明
类型 数组名 [常量表达式]
例: int a[10]; //定义数组名为a,长度为10的int型数组 #define A 5 //宏定义 符号常量 int b[A]; int n = 10; int c[n] //报错!要填入 常量表达式。C99才支持这样写,称为变长数组
一维数组的初始化
例: int a[5] = {1, 2, 3, 4, 5} //大括号{}括住数组元素,元素之间逗号 , 隔开 int b[5] = {1, 2, 3} //填入元素个数小于数组长度,后面剩余元素默认为0 int c[] = {1, 2, 3, 4} //不填数组长度,以填入的元素个数为数组长度 int d[4] ={1, 2, 3, 4} //与数组c等价 //有规律的数组元素也可以用 循环 进行赋值 int e[5]; int i = 0; for (i = 0;i < 5;i++) { e[i] = i * 2; //e[5] = {0, 2, 4, 6, 8} }
一维数组元素的引用
引用形式为:数组名[索引]
例: int a[] = {1,2,3,4,5}; printf("第四个元素为: %da",a[3]) //数组 a 的第 4 个元素(索引从 0 开始)
注:数组存储字符串时,要特别关注一下问题
- printf()函数以字符串形式 %s 打印字符数组中的字符,要确保数组末尾以 ‘\0’ 结束。
- strlen()函数计算字符数组中元素个数时,要确保数组末尾以 ‘\0’ 结束,计算元素不包含数组末尾的 ‘\0’。
- sizeof() 运算符计算数组的整体大小,包含末尾的 ‘\0’。
例: char arr1[] = "abc"; //['a']、['b']、['c']、['\0'] char arr2[3] = "abc"; //['a']、['b']、['c'] 指定数组大小刚好为元素个数,末尾没存'\0' char arr3[] = { 'a', 'b', 'c' }; //['a']、['b']、['c'] char arr4[] = { 'a', 'b', 'c', '\0'}; //['a']、['b']、['c']、['\0'] 初始化手动加入 '\0' char arr5[5]; //未初始化 printf("arr1: %s\n", arr1); //abc printf("arr2: %s\n", arr2); //abc烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫虜怰x printf("arr3: %s\n", arr3); //abc烫烫蘟bc烫烫烫烫烫烫烫烫烫烫烫烫滔鵜Y蠐 printf("arr4: %s\n", arr4); //abc printf("arr5: %s\n", arr5); //烫烫烫烫烫烫烫烫烫烫烫烫烫烫奆?? //乱码,printf以 '\0'为结束,arr2、arr3结尾是 'c' ,会继续打印往后内存单元中的内容,到 '\0'才结束 //printf()函数以字符串形式 %s 打印字符数组中的字符,要确保数组末尾以 '\0' 结束。 printf("arr1: %d\n", strlen(arr1)); // 3 printf("arr2: %d\n", strlen(arr2)); // 67(大于3的随机值)strlen以 '\0'为结束 printf("arr3: %d\n", strlen(arr3)); // 35(大于3的随机值) printf("arr4: %d\n", strlen(arr4)); // 3 printf("arr5: %d\n", strlen(arr5)); // 34(随机值) //strlen()函数计算字符数组中元素个数时,要确保数组末尾以 '\0' 结束,计算元素不包含数组末尾的 '\0'。 printf("arr1: %d\n", sizeof(arr1) / sizeof(arr1[0])); // 4 printf("arr2: %d\n", sizeof(arr2) / sizeof(arr2[0])); // 3 printf("arr3: %d\n", sizeof(arr3) / sizeof(arr3[0])); // 3 printf("arr4: %d\n", sizeof(arr4) / sizeof(arr4[0])); // 4 printf("arr5: %d\n", sizeof(arr5) / sizeof(arr5[0])); // 5 //sizeof() 运算符计算数组的整体大小,包含末尾的 '\0'。
二维数组
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1401362462@qq.com