2012年11月20日 星期二

陣列指標化

int a[2][3][4]= {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24};


a[1]的位址=6684104              (a+1)的位址=6684104             ***(a+1)=13

a[1][2]的位址=6684136           (*a+5)的位址=6684136            **(*a+5)=21

a[0][1][3]的位址=6684084        (**a+7)的位址=6684084           *(**a+7)=8



int a[x][y][z];

a[A][B][C] = A*y*z + B*z + C + 1

a[1][1][3] = *(*(*(a+1)+1)+3) = 1*3*4 + 1*4 + 3 + 1 = 20


*(*(*(a+0)+0)+7)=*(**a+7)=1 + offset =1 + 7=8

*(*(*(a+0)+5)+0)=**(*a+5)=1 + offset*z =1 + 5*z=1 + 5*4=21

*(*(*(a+1)+0)+0)=***(a+1)=1 + offset*y*z =1 + 1*3*4 = 1 + 1*3*4 = 13