c语言中,关于指针int (*p)[4]和int *p指向二维数组a[3][4]初始化的问题。

为何前者初始化为:p=a或p=&a[0] 后者初始化为:p=*a或p=a[0]
2025-03-13 16:17:25
推荐回答(3个)
回答1:

前者是二级地址,就是地址的地址。后者是一级地址,虽然指向的也是一个地址,但是定义的时候申明的是一级地址。

回答2:

int (*p)[4]是一个数组指针,数组的每一个元素都是一个指针,都指向的是地址。后一个只是一个普通的指针

回答3:

二级地址是指针的指针,也就是这个指针存放的是一个指针,而不是地址。也就是int **
一级指针只是个指针 int *,这个指针存放的是一个地址