拿起你的课本 翻到指针和多维数组那一节 认真看几遍
prt是一个指向二维数组int a[4][3]的指针 和a一样 指向a[0]
a[0]是a[0][0]的地址 所以p指向a[0][0]
对一个指针加一,会对原来的数值加上一个对应类型大小的数值。a和prt所指向的对象是三个int, 而p所指向的对象是一个int.
*(*(prt+1)+2) prt+1指向a[1] 而a[1]的值是a[1][0]的地址 所以*(prt+1)是指向a[1][0]
所以*(prt+1)+2指向a[1][2].
因为数组里面各元素是连续存储的 所以*(p + 5)实际指向了a[1][2]
第三个和第一个差不多
第四个*ptr是a[0][0]的值 *ptr + 1 指向a[0][1] 另外你好像少了一个反括号
追问a和prt所指向的对象是三个int, 而p所指向的对象是一个int.
这是为啥?