1. 程式人生 > >取多維陣列首地址的方法

取多維陣列首地址的方法

#include <stdio.h>
#include <cstdlib>
int main(void)
{
//char a[1] = {'1'};
char a[1][1] = {'1'};
/*char a[2][2][3] = {
{
{'1','2','3'},
{'4','5','6'}
},
{
{'7','8','9'},
{'10','11','12'}
}

};*/

  //對一維陣列取首地址,有兩種方法

//char *pa = a;   //第一種
char *pa = &a[0]; //第二種
//char *pa = &a[0][0]; //取二維陣列首地址的方法
//char *pa = &a[0][0][0];//取三維陣列首地址的方法

//printf("%c",*(pa));
printf("\n");
system("pause");
return 0;

}

但是對於三維陣列如何得到10,11,12呢?用下面的方法得到的只是0,1,2.,

#include <stdio.h>
#include <cstdlib>
int main(void)
{


char a[2][2][3] = {
{
{'1','2','3'},
{'4','5','6'}
},
{
{'7','8','9'},
{'10','11','12'}
}
};
char *pa = &a[0][0][0];
int i = 0;
for(i = 0; i < 12; ++i)
{
printf("%c ",*(pa + i));
}
printf("\n");
system("pause");
return 0;
}