代碼演示
#include <stdio.h>
#include "stdlib.h"
#include "string.h"
int main(int argc, const char * argv[]) {
/**
* 多維數(shù)組
*/
int a[3][5],i = 0,j=0;
int tmp = 1;
for (int i = 0; i<3; i++) {
for (j = 0; j<5; j++) {
a[i][j] = tmp++;
}
}
for (int i = 0; i<3; i++) {
for (j = 0; j<5; j++) {
printf("%d ",a[i][j]);
}
}
printf("a :%d a+1:%d ",a,a+1);//步長是20字節(jié) 5*4;
printf("a :%d a+1:%d ",&a,&a+1);//步長是60字節(jié)
/**
* 定義一個指向數(shù)組的指針變量
*/
int (*pArray)[1];//告訴編譯器 分配8個字節(jié) 在64位平臺下
printf("-->%lu\n",sizeof(pArray));
pArray = a;
for (int i = 0; i<3; i++) {
for (j = 0; j<5; j++) {
printf("%d ",pArray[i][j]);
}
}
/**
* 多維數(shù)組名的本質(zhì) 就是一個數(shù)組指針
*/
/**
* a+i 代表整個第i個元素的地址. 二級指針
*(a+i) 代表一級指針 第i行元素的地址
*(a+i)+j 代表第i行的第j個元素的地址. ====a[i][j]
*/
return 0;
}
內(nèi)存模型圖
1ACD43C1-E5A4-49FD-9CE6-823A2056CB69.png
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者