指针与数组(三)——数组认知

来源:互联网 发布:ubuntu 添加启动脚本 编辑:程序博客网 时间:2024/06/07 01:24

一.一维数组

1.      定义、初始化、遍历

1)        整型数组

int a[3] = {0};



2)        字符数组

char src[100] = “helloworld”;




2.      数组名的作用(指针常量)

1)        array与&array的区别


array:数组首元素的地址

&array:数组的地址

一维数组名是指针常量,保存数组首元素的地址

对一维数组的数组名取地址等于数组的地址

对一维数组的地址取值等于一维数组首元素的地址à*&array= array

2)        数组指针(传参时使用)

是一个指针,指向数组的首元素。

int (*pa)[MAX_SIZE] =&array;à*pa == *(&a) == a

sizeof(pa) = 4;

传一维数组名用数组元素的指针;

传二维数组名用一维数组指针;

传三维数组名用二维数组指针;

传指针数组名用指针的指针。


二.二维数组

1.      定义、初始化、遍历

1)        整型数组

int a[2][2] ={{1,2},{3,4}};(可省略行,但不能省略列)

sizeof(a)= 16;


*(*(a + i)+ j):

a + i:第i+1个数组的地址

*(a + i): 第i+1个数组的值

*(a + i) + j: 第i+1个数组的第j+1个元素的地址

*(*(a + i) + j): 第i+1个数组的第j+1个元素的值

2)        字符数组

char src[3][100] ={“hello1”,”hello2”,”hello3”};

char (*p_src)[3][100] =&src;à*p_src = src


*(src + i):

src + i: 第i+1个数组的地址

*(src + i): 第i+1个数组的值

2.      数组名的作用(指针常量)

1)        array与&array的区别


二维数组名是首个一维数组的地址

对二维数组的地址取值等于首个一维数组的地址

2)        指针数组

例:

  int *pa[3];//3个指针为野指针,使用时要为其分配空间



0 0
原创粉丝点击