关于指针与二维数组之间的那些事

int a[2][3]={{1,2,3},{4,5,6}}

(*p)[3]=a;

若引用数组第二行第二列元素的值,则下列不正确的表达式为

A:*(*(a+1)+1)

B:*(*(p+1)+1)

C:*(*(++a)+1)    //错误

D:*(*(++p)+1)

解析:因为数组名a是一个常量,而p是一个变量,a可以a+1,但不能++a,但p可以

拓展:类型符说明 (*指针变量名)[长度]

int (*p)[4]   *p有4个元素,每个元素都为整型

        p所指的对象是有四个整型元素的数组

*(p+2)+3=a[2]+3=&a[2][3];

*(*(p+2)+3)=*(a[2]+3)=a[2][3];

 

小白自行理解,如有错误,请大佬指出,谢谢

posted on 2016-12-22 17:57  么么打123  阅读(205)  评论(0编辑  收藏  举报