C语言 关于*(p[1]+2)与*(a[1]+2)的差别问题若有定义int a[2][3]={1,2,3,4,5,6};int *p=a;这样的话当我用终端输出时不能输出*(p[1]+2) 它会说有三个错误,只可以输出*(a[1]+2) 可是为什么呢?如果我改为指向一

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/22 21:03:25
C语言关于*(p[1]+2)与*(a[1]+2)的差别问题若有定义inta[2][3]={1,2,3,4,5,6};int*p=a;这样的话当我用终端输出时不能输出*(p[1]+2)它会说有三个错误,

C语言 关于*(p[1]+2)与*(a[1]+2)的差别问题若有定义int a[2][3]={1,2,3,4,5,6};int *p=a;这样的话当我用终端输出时不能输出*(p[1]+2) 它会说有三个错误,只可以输出*(a[1]+2) 可是为什么呢?如果我改为指向一
C语言 关于*(p[1]+2)与*(a[1]+2)的差别问题
若有定义int a[2][3]={1,2,3,4,5,6};int *p=a;这样的话当我用终端输出时不能输出*(p[1]+2) 它会说有三个错误,只可以输出*(a[1]+2) 可是为什么呢?如果我改为指向一维数组的指针时这两个又都没有编译错误了,为什么啊
如果定义时int *p=a 而程序又不能用p来操作二维数组元素 那么这里的p有什么用?

C语言 关于*(p[1]+2)与*(a[1]+2)的差别问题若有定义int a[2][3]={1,2,3,4,5,6};int *p=a;这样的话当我用终端输出时不能输出*(p[1]+2) 它会说有三个错误,只可以输出*(a[1]+2) 可是为什么呢?如果我改为指向一
没有差别啊,只是符号不同,一个是p,一个是a.
应该是问*(p[1]+2)与(*a[1]+2)的差别吧
如果是的话:*(p[1]+2)是指针p[1]偏移二位后的位置处对应的值.
而(*a[1]+2)是指针a[1]对应的值加上2.