请C语言高手帮忙下 若有以下程序段,则不能正确引用数组元素a[1][2]的是为什么是 D
Int(*p)[3]Inta[][3]={1,2,3,4,5,6,7,8,9};p=a;Ap[1][2]B*(*(a+1)+2)C(*(p+1))[2]Dp[1]+2...
Int (*p)[3]
Int a[][3]={1,2,3,4,5,6,7,8,9};p=a;
A p[1][2]
B *(*(a+1)+2)
C (*(p+1))[2]
D p[1]+2 展开
Int a[][3]={1,2,3,4,5,6,7,8,9};p=a;
A p[1][2]
B *(*(a+1)+2)
C (*(p+1))[2]
D p[1]+2 展开
1个回答
展开全部
因为D的表达本身就是错误滴哈。。没这种表示方法呢。。特别是在有关二维数组指针时一定要多注意定义滴是行指针还是列指针哟。。而你这个题目滴定义是定义为*p是行指针,因此在用行指针表示二维数组元素时的形式有:p[ i ][ j ](如同A选项),*(*(p + i)+ j) (注意:最里面的 “ * ” 号是把行指针转换为列指针),(*(p + i))[ j ] (同C选项)。。希望你能弄懂哈。。如果不了解的话,请再多看看指针表示二维数组滴相关知识哈。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询