c 多維陣列指標(一站式程式設計)

2021-06-21 16:08:46 字數 1173 閱讀 3675

一站式程式設計裡的題目:

定義以下變數:

c**  

char a[4][3][2] = , , },  

, , },  

, , },  

, , }};  

char (*pa)[2] = &a[1][0];  

char (*ppa)[3][2] = &a[1];  

要想通過pappa訪問陣列a中的'r'元素,分別應該怎麼寫?

**如下:

c**  

#include 

int main(void)  

, , },  

, , },  

, , },  

, , }};  

char (*pa)[2] = &a[1][0];  

char (*ppa)[3][2] = &a[1];  

pa=pa+5;  

ppa++;  

printf("pa now is %c\n",pa[0][1]);  

printf("ppa now is %c\n",ppa[0][2][1]);  

return 0;  

}  

解釋:1.首先說

c**  

char (*pa)[2] = &a[1][0];  

char (*pa)[2] 意思是 含有兩個型別是char元素的陣列的陣列指標,&a[1][0]則代表 陣列a中第二行第一組的首位址,賦值後pa將位址指向了 陣列,那麼如果要到我們只要指標的位址指到陣列的首位址就可以了,將pa+5移動了指標指向的位址。

最後列印r

c**  

printf("pa now is %c\n",pa[0][1]);  

pa[0][1] 表示訪問這個陣列中的第二個元素,也就是r

2.c**  

char (*ppa)[3][2] = &a[1];  

ppa代表含有乙個二維陣列的陣列指標,目前指向了第二行

c**  

, , }  

要想訪問到必須再向下一行: ppa++

最後訪問r

c**  

printf("ppa now is %c\n",ppa[0][2][1]);  

一站式程式設計筆記(17,18,19)

第17章 彙編器把文字檔案轉換成目標檔案.o 目標檔案由若干個section組成,我們在匯程式設計序中宣告的.section會成為目標檔案中的section 然後鏈結器把目標檔案的section合併成幾個segment,生成可執行檔案。最後載入器根據可執行檔案的segment資訊載入執行這個程式。第...

Linux C程式設計一站式學習

北京亞嵌教育研究中心 ps ef grep sctp grep全稱是global regular expression print,表示全域性正規表示式.gdb除錯又看一遍。迅速用起 pthread cond timedwait 條件變數是利用執行緒間共享的全域性變數進行同步的一種機制,主要包括兩個...

Linux C程式設計一站式學習 筆記

關於程式的討論裡提到了c語言的可移植,原本不知道為什麼,現在知道,原來是因為各種平台上都有c語言的編譯器,這就好像是一種由於廣泛使用而成為規範的東西一樣,當所有機器上都有你的編譯器的時候,你的可移植性當然強了。之前看v6shell的 就沒明白詞法和語法有什麼差別,這裡講到了詞法就是單詞 token ...