/*
数组 : 相同类型数据的结合;
定义格式 ; 元素数据类型 数组名称[元素个数],如int values[3];
初始化 : 1,定义的同时初始化,如 : int values[3] = {2, 4, 2}; //元素个数可省略不写,只有这时,才可以对所有元素一次性初始化;
为指定索引位置的元素赋值,如 : int values[3] = {[1] = 3, [0] = 1, [2] = 5};
2,定义后,在初始化,如 : int values[3];values[0] = 3; //此时元素个数不可省略,否则无法为数组分配内存空间;
//注 : 完全初始化和部分初始化,区别只在于定义的同时初始化时,是否对所有的元素都进行初始化;
注 : 数组名中存储的实际上是数组的地址;
数组在内存中的存储方式 :
如前文所述,内存寻址是从地址大的字节开始为变量分配内存空间,数组也是如此.
首先,系统会从空闲的地址大的字节开始为整个数组分配内存空间;
然后,系统会从为整个数组分配的内存空间地址小的字节开始为数组中的每一个元素分配内存空间;
最后,在为每一个元素分配的内存空间中,从地址大的内存空间开始存储元素的二进制的高位;
//注 : 为数组分配的内存空间的最小地址即为该数组在内存的地址;
注 : 在使用数组时,不要访问不属于数组自身的内存空间,否则会导致数据混乱,甚至整个程序的崩溃;
注 : 当把数组作为实参传递给函数时,是将数组的地址传递给函数的形参,由此便可以理解为什么在函数内部可以直接修改数组的值了;
注 : 在函数内部无法利用sizeof函数计算数组的长度,原因在于,当把数组传递给函数,函数实际接收到的是一个指针,而在64位编译器下,指针的长度始终为8个字节;
二维数组的简单说明 :
定义格式 : 元素数据类型 数组名[一维数组个数][一维数组中元素的个数] //注 : 定义的同时并初始化时,一维数组的个数可省略,但一位数组中元素的个数不可省略;
*/
当前文章:C语言之数组
路径分享:
http://jkwzsj.com/article/pdpojc.html