若int*p[3],a[2][3];则p[0]=&a[1][2]这个赋值语句为何不对呢?
答案:1 悬赏:70 手机版
解决时间 2021-08-23 16:23
- 提问者网友:情歌越听越心酸
- 2021-08-22 18:55
若int*p[3],a[2][3];则p[0]=&a[1][2]这个赋值语句为何不对呢?
最佳答案
- 五星知识达人网友:我住北渡口
- 2021-08-22 19:48
int *p[3];
int a[2][3];
则p是一个数组,数组元素是指针,该指针指向int类型的变量
所以p[0]即 *(p + 0)是数组p的第0个元素,p[0]的类型为指向int类型的变量.
a是一个数组,数组的元素是含3个int类型元素的数组.
所以a[1]是数组的第一个元素,a[1]的类型为含3个int类型元素的数组,a[1][2]是a[1]的第2个元素,a[1][2]的类型是int变量,&a[1][2]的类型就是指向int类型变量的const指针
所以p[0]=&a[1][2]是在把一个指向int变量的const指针赋值给int类型的指针变量.在C语言中,这是合法的.
不只是谁告诉楼主这个赋值语句不对?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯