您的位置:首页 > 编程语言 > C语言/C++

【笔记-C语言】 数组

2017-12-15 19:11 225 查看

定义

a[]={…}    a[]初始化后会跟据数据数量自动分配内存

a[10]

a[][10]={…}

a[10][10]

 

int a
;使用时下标从0开始到n-1一共n个元素

sizeof(a)/sizeof(int)
可计算出数组中元素的个数,在函数调用中,退化为指针,无法计算出数组元素个数。

初始化

==========一维数组

a[10]={1,2,3}        数量不足时补0

a[10]={[8]=5,[5]=3}      不需要考虑顺序

 

a[10]={0}        定义时进行清零

使用memset(a,0,sizeof(a))也可将数组清零

 

==========二维数组

a[m]
={{n个数据},{…}…}

数组名

一维数组:a+3等价于a[3]的指针

二维数组:a+3等价于a[3][0]的指针,*(*(a+i)+j)相当于a[i][j]

 

 

数组名相当于一个地址,并不真实存在,二维数组名是一个特殊的二级指针(行指针)

数组名不可以使用++运算,因为数组名是常量

可将数组名当做一个指针传给函数

 

int a[10];

int *p=a时,p移动1位为int大小,即为数组下一元素的位置

(&a+1)   &a移动一位的大小为sizeof(a)的大小

a与&a值相同,意义不一样

p=a或者p=&a[0],p可以像a方式一样使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言