数组就是存储一组数据的变量
数组总体分配内存是从小到大分配的,数组的地址是首元素的地址
数组名代表数组的地址:int age[4]; age就是这个数组的内存地址
数组元素个数放到数组名称后:int age[4],定义数组只能这么写,不能像java那样 int [4] age这样写是不对的
数组作为函数参数时可省略数组长度
数组参数传递为地址传递,函数中更改形参数组的值,实参数组的值也会改变
数组当作函数参数传递时,会当作指针变量来使用,指针变量在64bit编译器环境下,占据8个字节
下面来看一下如何正确定义数组以及数组定义的易错点
- #include <stdio.h>
- int main(int argc, const char * argv[]) {
- int age[6] = {1,2,3,4,5};//正确定义数组
- int age2[12] = {[3] = 12,[4] = 15};//正确定义数组,直接给数组第4第5位赋值
- int age3[] = {12,123,14}; //正确定义数组,长度为3
- int age4[]; //错误的,这样定义数组程序不知道要给age4分配多少内存空间
- int age5[5];
- age5 = {1,2,3,4,5}; //这样定义数组也是错误的,只能在定义数组的同时进行初始化
- age5[0] = 12; 这样写是对的,可以对数组中的元素单独赋值
- int a = 10;
- int ages[a]={12,32,12};//编译时有问题,定义数组的同时并初始化,数组元素个数必须为常量或者不写,如果是变量不知道变量是否初始化
-
- return 0;
-
- }
复制代码
|
|