
关于指针与数组跟多维数组还有二级指针
关于指针与数组跟多维数组还有二级指针问题一假设a是一个整型二维数组指针变量为pa几代表了a[0][0]的地址为何不能直接p=a如果解释为a是一个二级指针,地址的地址,不能...
关于指针与数组跟多维数组还有二级指针问题一
假设a是一个整型二维数组指针变量为p
a几代表了a[0][0]的地址为何不能直接p=a
如果解释为a是一个二级指针,地址的地址,不能赋予一般指针变量。
问题二来了
现在p为一个二级指针
为何还是不能p=a
这样二级指针与二维数组的定义是什么?,请给出详细解释
还有就是为什么char*则可以只赋予二级指针,它与其他类型区别又是什么
问题三
为什么a会被译为int (*)[n]
数组指针的定义又是什么?
本人新手还请大神详细解释一下,谢谢 展开
假设a是一个整型二维数组指针变量为p
a几代表了a[0][0]的地址为何不能直接p=a
如果解释为a是一个二级指针,地址的地址,不能赋予一般指针变量。
问题二来了
现在p为一个二级指针
为何还是不能p=a
这样二级指针与二维数组的定义是什么?,请给出详细解释
还有就是为什么char*则可以只赋予二级指针,它与其他类型区别又是什么
问题三
为什么a会被译为int (*)[n]
数组指针的定义又是什么?
本人新手还请大神详细解释一下,谢谢 展开
2个回答
展开全部
数组可以赋值给同类型的指针,例如char a[10], *p = a;
int a[][n],int[n]的数组,即(n个int数组)的数组
int (*p)[n], int[n]的指针,指向(n个int的数组)的指针。
所以p = a合法
int *pa[n], int 指针的数组
int **pp, int指针的指针
所以pp = pa合法
而二级指针和二级数组之间,类型不一致,一个是指针的指针,一个是数组的指针,所以赋值不合法。
int a[][n],int[n]的数组,即(n个int数组)的数组
int (*p)[n], int[n]的指针,指向(n个int的数组)的指针。
所以p = a合法
int *pa[n], int 指针的数组
int **pp, int指针的指针
所以pp = pa合法
而二级指针和二级数组之间,类型不一致,一个是指针的指针,一个是数组的指针,所以赋值不合法。
更多追问追答
追问
为什么char类型二维数组可以用数组名直接赋予二级指针,而int类型则不能直接赋予二级指针,两者有什么区别
追答
没有区别,都是不可以的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询