初始化篇
1.C语言的全局变量在没有赋值以前默认为0,因此在开头定义无需再进行赋值。
例如:include <stdio.h>int a[10];
2.对于一维数组,当数据非常大的时候,不需要给出数组的大小,编译器可以替你数数。但对于小数组还是建议写上数组大小。
例如:int a[] = {2,4,5,6,7,8,9,1,3};
3.若数组只是用来读入不读写,可使用const声明数组,以免后续不小心改动
4.集成初始化时的定位,可用[n]在初始化数据中给出定位,没有定位的数据接在前面的位置后面,其他位置的值补零,特别适合于初始数据稀疏的数组。
例如:int a[10] = { [0] = 2, [2] = 3, 6 };
5.在C99之前不允许变量数组,即
int m = 8;float a[m];
在C99之前无法识别
题目实例:#1海选女主角——数组的锅
使用技巧
1.数组经常要被用在for循环中,由于人工计算特别容易出错,所以我们可以巧用sizeof运算符来让电脑帮我们计算长度,另外一个优点就是这样子在今后对代码进行优化修改时,若数组的长度改变,sizeof也会动态改变,无需全文修改,有可扩展性。
例如:int length = sizeof(a) / sizeof(a[0]);
*因为我个人一直弄混sizeof和strlen在计算字符串时候的区别,现在碰到了就再复习巩固一下
回归字符串的定义,字符串是以0结尾的一串字符,固sizeof计算的是包括最后’\0’长度的,而strlen则相反,结果不包括最后’\0’的长度。
2.数组变量本身不能被赋值,若要把一个数组的所有元素交给另外一个数组,必须采用for循环遍历的方法把每一项的数值逐个赋值给新数组。
3.数组作为函数的参数时,不能在[]中给出数组的大小。例如
int fun( int a, int a[]);