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語言陣列
- scala語法 -多維陣列陣列
- c語言程式設計學習之二維陣列C語言程式設計陣列
- c++筆記_多維陣列C++筆記陣列
- c語言中三維陣列C語言陣列
- C語言 指標與陣列C語言指標陣列
- C語言基礎-1、陣列C語言陣列
- 多維陣列陣列
- c語言-運算子,陣列,指標C語言陣列指標
- C語言陣列求學生成績C語言陣列
- C++ 獲取陣列大小、多維陣列操作詳解C++陣列
- 多維陣列轉一維陣列(降維的多種方式)陣列
- 一維多維陣列陣列
- PHP中二維陣列與多維陣列PHP陣列
- C語言動態陣列小作業C語言陣列
- 多維陣列排序陣列排序
- go 語言陣列Go陣列
- C語言如何計算陣列的長度C語言陣列
- C語言指標和陣列筆試題C語言指標陣列筆試
- C語言陣列實現三子棋C語言陣列
- PHP 多維陣列排序PHP陣列排序
- 《零基礎看得懂的C語言入門教程 》——(九)C語言二維陣列與迴圈巢狀C語言陣列巢狀
- C語言 二維陣列實現三子棋的思路及程式碼C語言陣列
- c語言關於陣列的簡單運算C語言陣列
- c語言獲取陣列長度的函式C語言陣列函式
- (C語言)使用指標列印陣列的內容C語言指標陣列
- JavaScript 學習筆記 - 多維陣列變為一維陣列JavaScript筆記陣列
- 多維陣列扁平化陣列
- python多維陣列切片方法Python陣列
- Multik——Kotlin的多維陣列Kotlin陣列
- ARM彙編和C語言混合程式設計中陣列的陣列的操作C語言程式設計陣列
- c語言中二維陣列的生成及應用C語言陣列
- Go語言slice的本質-SliceHeaderGoHeader
- 最大連續子陣列和求解問題(C語言)陣列C語言