数组的注意点
数组类型 数组名[长度];其中长度是必须大于0的整数
/*
在这句话中必须指定号数组的长度
切不可写成:
Int a[i];
i=10;
而应该写成:
Int a[10];
也可以用宏定义和malloc函数来定义
宏定义的写法:
#define N 10
Int a[N];
*/
2.数组中每个元素的类型一致;
3.数组是一个有序的数组在内存中的存储是按顺序排列的,而且内存的地址是从小到大的;//内存的地址从小到大是因为CPU中只有累加器,而没有累减器的存在
4.数组名也就是数组第一元素的地址,也就是这个数组的首地址,当然也可以理解成数组名是一个地址常量;
5.已知一个数组(如int a[n]),在只知道数组名,不知道数组元素个数的情况下,如何算出数组中元素个数(即求出n的值)
答案:sizeof(a)/sizeof(a[0]);
/*前面的sizeof(a)是计算整个数组的长度,后面的sizeof(a[0])是计算数组中第一个元素的长度,因为数组中每个元素的类型一样,所以每个元素所占的内存长度也是一样的,而且数组是必定存在a[0]的*/
6.数据元素的初始化:
A.数组中初始化的元素数量不能超过所设定的长度;
B.数组如果初始化的元素数量不够所设定的长度,在后面!!自动补0;
C.int a[]={1,2,3,4,5};这样的语句时成立的,虽然没有给定长度,但是后面初始化的元素自动填充到内存中去,编译的时候也就得到了数组的长度;也就是编译器是根据数组初始化的元素个数来划分内存区域的;
7.C语言在编译时是不检查数组的下标越界的,但是在运行的过程中,内核会报“segmentation fault(core dumped)"段错误。//如果运行程序的过程中,操作了一块非法的内存区域,操作系统为了保护内存中数据的完整性,强行终止了程序的运行,并且报”段错误“,段错误发生的原因有数组的下标越界,或者指针未指向有效元素…
上一篇: C#上手练习6(方法语句1)
下一篇: 有本书他肯定没看过!