C语言求助.拜托能把ABCD全面分析分析

来源:百度知道 编辑:UC知道 时间:2024/06/06 23:21:45
设有以下定义
int a[4][3] = {1,2,3,4,5,6,7,8,9,10,11,12};
int (*prt)[3]=a,*p=a[0];
请问这几项的正确表示法是?
A *((*prt+1)[2])
B *(*(p+5))
C (*prt+1)+2

A *((*prt+1)[2]) 其中prt相当于二级指针,不能有两个*和一个[]作用在二级指针上,所以,非法

B *(*(p+5)) 其中p相当于一级指针,不能有两个* 作用在一级指针上,所以,非法

C (*prt+1)+2==〉(*a+1)+2==>a[0]+1+2==>a[0]+3==>&a[0][3] 合法