// (pointer constant) 把「陣列名稱」當作「指標常數」來運作
#include <stdio.h>
#include <stdlib.h>
int main()
{
int array[][4] = {1, 2, 3, 4, 11, 12, 13, 14};
int i, j;
// *(array+i)+j to access the "address" of array[i][j]
// *(*(array+i)+j) to access the "value" of array[i][j]
for(i=0 ; i<2 ; i++){
for(j=0; j<4 ; j++){
printf("array[%d][%d] = (%%d) %d\t\t", i, j, array[i][j]);
printf("array[%d][%d] = (%%p) %p\n", i, j, array[i][j]);
printf("&array[%d][%d] = (%%d) %d\t\t", i, j, &array[i][j]);
printf("&array[%d][%d] = (%%p) %p\n", i, j, &array[i][j]);
// address
printf("*(array+%d)+%d = (%%d) %d\t\t",i, j, *(array+i)+j);
printf("*(array+%d)+%d = (%%p) %p\n",i, j, *(array+i)+j);
// value
printf("*(*(array+%d)+%d) = (%%d) %d\t\t",i, j, *(*(array+i)+j));
printf("*(*(array+%d)+%d) = (%%p) %p\n",i, j, *(*(array+i)+j));
printf("---------------------------------\n");
}
}
system("pause");
return 0;
}