- 帮我们存储一组数据;只能存放一种类型的数据,比如int类型的数组;
- 类型 数组名【元素个数】;int age [5];写法是:int ages[50] = {19,29,28,27,26};
- 数组的常见操作:遍历;按顺序查看数组的每一个元素;for(int i =0;i<5,i++){printf("ages[%d]=%d\n",i,ages[i]);}
- int ages[5] = {[3]=4,[4]=23};给指定的位置赋值;
- int ages['A']={10,23,45};
- int ages['A'-60]={10,50,10};
- 数组中的元素个数只能是常量;int count = 5;int ages[count]
- 如果想再定义数组的同时进行初始化,数组元素个数必须是常量,或者不写;因为写count,ages的值就不确定;
- 用sizeof可以算出字节数;用字节数除以4,可以得到int的个数;
- 数组不能用ages.length,这个用法不是用在面向过程的c语言上,是用在面向对象的上面;
- 数组在内存中的存放位置是:
- char是单字节的字符;
- %p是打印内存地址;
数组和函数:
- 把数组传到函数里面,可以省略数组的元素个数;
- 数组名代表数组地址;
- 数组作为参数被函数调用,传递的是地址,直接影响内存的地址的值;
- 指针的长度永远是8个字节;当你把一个数组当做函数的参数来传递的时候,会当做指针变量来使用;指针变量在64bit编译环境下,永远都是指针8个字节;
- 如果当前元素大于max,就用当前元素覆盖max; if(array[i]>max){max = array[i]}return max;
- 数组中的元素必须是同种数据类型;
二维数组:
- int ages[3][10];代表3个班,每个班10人;
- 以上是3个数组,每个数组有10个元素;
- int ages[3][5]={{},{},{}}
- 二维数组使用场合:有格子出现的地方;