【C语言】二维数组指针,*a+1和*(a+1)的区别

时间:2024-03-30 09:44:56

【C语言】二维数组指针,*a+1和*(a+1)的区别
首先
a存了3个一维数组,是一维数组的名称,首指向第一行一位数组的首地址
a[i]是第i行一位数组的名称,首指向一位数组的第一个数。

我把*理解成读地址进去。

*a+1

根据运算符顺序,先运算a,a指向首个元素1000,读出地址1000进入一位数组指向首个数,即地址为1000那个,然后+1指针往后,即指向1004,所以a+1代表&(0)(1)也就是1004。

*(a+1)

a指向1000,➕1往下走,指向1012,*读了1012进入1012,所以结果是&a[1]{0}。