c语言的指针和数组联合使用
数组不初始化的话,元素的值为随机值,必须要进行部分初始化和完成初始化,部分初始化的话,其余的值默认为0
1.一维数组的定义和初始化,以及和指针连用
1,不写数组长度
2,写数组长度,但是初始值不够数组长度,其他赋值为0
3. 写数组长度,长度跟赋值个数等同
int a []={1,2,3,4,5};
int *p = a;
p,a,&a[0]这三个的值一样
2.二维数组的定义和初始化。以及指针连用
1.int a[5][3]={ {80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85} };、
2.int a[5][3]={80, 75, 92, 61, 65, 71, 59, 63, 70, 85, 87, 90, 76, 77, 85};
3.可以只对部分元素赋值,未赋值的元素自动取“零”值
4.如果对全部元素赋值,那么第一维的长度可以不给出
二维数组也是连续的空间,可以按照有几个一维数组来理解,比如a[2][3],可以按照有2个一维数组来理解,a[0],a[1],此时的a = a[0]=&a[0][0], a[1] = a+1=&a[1][0], a[0]+1=&a[0][1],
二维数组一般和数组指针连用:http://c.biancheng.net/view/2022.html
a+i == p+i
a[i] == p[i] == *(a+i) == *(p+i)
a[i][j] == p[i][j] == *(a[i]+j) == *(p[i]+j) == *(*(a+i)+j) == *(*(p+i)+j)