一站式程式設計裡的題目:
定義以下變數:
c**
char a[4][3][2] = , , },
, , },
, , },
, , }};
char (*pa)[2] = &a[1][0];
char (*ppa)[3][2] = &a[1];
要想通過pa
或ppa
訪問陣列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 ...