C語言多維陣列本質技術推演
多維陣列本質技術推演
int a[10];
char myarray[3][5] PK int (*p)[5]
myarray名稱到底是什麼?
多維陣列char a[i][j] ==> ((a+i)+j)轉換技巧分析
void main222()
{
int a[3][5];
int c[5]; //&c + 1;
int b[10]; //b代表陣列首元素的地址 &b代表這個陣列的地址 &b+1相當於 指標後移410個單位
//a代表什麼什麼那?a是一個陣列指標 指向低維陣列的指標
//a +1;
printf(“a:%d, a+1:%d \n”, a, a+1); //45
{
int i=0, j = 0, tmp = 0;
for (i=0; i<3; i++)
{
for (j=0; j<5; j++)
{
a[i][j] = ++tmp;
}
}
printf("\n");
for (i=0; i<3; i++)
{
for (j=0; j<5; j++)
{
printf("%d \n", a[i][j]);
}
}
}
//a的本質是一個陣列指標,每次往後跳一維的維數
{
int i = 0, j = 0;
//定義了一個陣列指標 變數
int (myArrayPoint)[5] ; //告訴編譯給我開闢四個位元組記憶體
myArrayPoint = a;
printf("\n");
for (i=0; i<3; i++)
{
for (j=0; j<5; j++)
{
//myArrayPoint[i][j] = ++tmp;
printf("%d \n", myArrayPoint[i][j]);
}
}
}
/
char cbuf[30]; // cbuf(1級指標) 代表陣列首元素的地址。。。&cbuf(二級指標) 代表整個陣列的地址
char array[10][30]; //array是二級指標
(array+i) //相當於 整個第i行的陣列地址 //二級指標 &cbuf
((array+i))//一維陣列的首地址 cbuf
((array+i))+j //相當於第i行第j列的地址了把。。。。&array[i][j]
(((array+i))+j) //相當於第i行第j列的地址了把。。。。<====>array[i][j]
/
system(“pause”);
}
結論:a是一個指向int myarray[5]的陣列指標 a+1 向後跳54,跳一行。
相關文章
- C/C++ 二維陣列的理解(多維陣列)C++陣列
- C語言陣列C語言陣列
- C語言 二維陣列課題程式碼C語言陣列
- c語言的陣列C語言陣列
- C語言(字元陣列)C語言字元陣列
- c語言字元陣列C語言字元陣列
- scala語法 -多維陣列陣列
- [ASM C/C++] C語言陣列ASMC++C語言陣列
- c語言程式設計學習之二維陣列C語言程式設計陣列
- c++筆記_多維陣列C++筆記陣列
- C語言的本質(35)——共享庫C語言
- c語言中三維陣列C語言陣列
- C語言 指標與陣列C語言指標陣列
- c語言陣列、sizeof()及strlen()C語言陣列
- C語言基礎-1、陣列C語言陣列
- 多維陣列陣列
- C語言的本質(32)——C語言與彙編之C語言內聯彙編C語言
- C語言的本質(34)——靜態庫C語言
- C語言的本質(36)——makefile基礎C語言
- 多維陣列轉一維陣列(降維的多種方式)陣列
- 一維多維陣列陣列
- C++ 獲取陣列大小、多維陣列操作詳解C++陣列
- C語言 簡單的佇列(陣列佇列)C語言佇列陣列
- PHP中二維陣列與多維陣列PHP陣列
- C語言陣列求學生成績C語言陣列
- c語言-運算子,陣列,指標C語言陣列指標
- 多維陣列排序陣列排序
- C語言的本質(38)——makefile之變數C語言變數
- C語言動態陣列小作業C語言陣列
- C語言指標和陣列基礎C語言指標陣列
- C語言:陣列和指標的區別C語言陣列指標
- C語言求其字元陣列的長度C語言字元陣列
- go 語言陣列Go陣列
- C語言的本質(22)——C標準庫之字串操作C語言字串
- PHP 多維陣列排序PHP陣列排序
- php 一維陣列變多維PHP陣列
- C語言指標和陣列筆試題C語言指標陣列筆試
- C語言陣列實現三子棋C語言陣列