int a[3][4]={
{1,3,5,7},
{9,11,13,15},
{17,19,21,23}
};
a代表第0行首地址
a+1代表第1行首地址
a+2代表第2行首地址
a+i代表行号为i的行首地址(按行变化)
a[0]代表a[0][0]的地址
a[0]+1代表a[0][1]的地址
a[0]+2代表a[0][2]的地址
a[0]+3代表a[0][3]的地址
int a[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
访问 第一行的第一个元素地址表示:
a + 1 = &a[1] = a[1] = &a[1][0] = *(a + 1)
获取第一行的第一个元素值的方式:
*a[1] = a[1][0] = **(a + 1)
for (int i = 0,i<3,i++){
for (int j = 0,j<4,i++){
printf("%d",*(a[i]+j)); // a[i]第i行的地址 指向第i行第一个元素的地址
// a[i]+j 指向第i行第j个元素的地址
// *a([i]+j) 取出指向第i行第j个元素的地址对应的内容
// *(pa[i]+j) = *(*(pa+i)+j)
}
}
|
|