指针与数组的常见等价操作
指针操作 | 数组操作 | 说明 |
&array[0] | array | 数组首地址 |
*array | array[0] | 访问数组的第一个元素 |
array + i | &array[i] | 数组第i个元素的地址 |
*(array +i) | array+b | 访问数组的第i个元素 |
*array +b | array[0]+b | 将数组元素的第1个元素值加b |
*(array + i) + b | array[i]+b | 将数组元素的第i个元素值加b |
*array++ | array[i++] | 先取得第i个元素,再指向第i+1个元素 |
*++array | array[++i] | 先将第i个元素加1,再取得第i+1个元素 |
*array-- | array[i--] | 先取得第i个元素,再指向第i-1个元素 |
*--array | array[--i] | 先将第i个元素减1,再取得第i-1个元素 |
二维数组的等价表示
表示形式 | 含义 |
a | 二维数组名,指向一维数组a[0],即第0行首地址 |
a[0]、*(a+0)、*a | 第0行第0列元素的首地址 |
a+1、&a[1] | 第1行首地址 |
a[1]、*(a+1) | 第0行第0列元素地址 |
a[1]+2、*(a+1)+2、&a[1][2] | 第1行第2列元素地址 |
*(a[1]+2)、*(*(a+1)+2)、a[1][2] | 第1行第2列元素的值 |