#ifndef _test_h
#define _test_h
//關鍵之處在於:
//1.理解透徹指標即位址,位址可以記錄乙個資料型別的位址,同時指標也是一種
//資料型別,所以指標也可以記錄乙個指標的位址。
//2. char*的特殊之處,直接列印的時候輸出的應該是這個指標指向的乙個字串,
//以』\0』標識字串的結束
#include #include #include #include using namespace std;
void main()
; //建立乙個陣列cp,每個元素都是乙個位址,這個位址記錄了乙個字元位址。
char **cp = ;
//記錄乙個位址,這個位址記錄了乙個位址的位址,被記錄位址的位址記錄的是乙個字元的位址。
char ***cpp = cp;
cout << sizeof(c[0]) << endl;
cout << sizeof(cp[0]) << endl;
cout << sizeof(cpp) << endl;
printf("%s\n",**++cpp); //point
printf("%s\n",*--*++cpp+3); //er
printf("%s\n",*cpp[-2]+3); //st
printf("%s\n",cpp[-1][-1]+1); //ew
printf("\n");
}#endif //_test_h
指標解引用
所有的變數使用到這一點,在本教程中有乙個共同點 該變數必須先宣告在編譯的時候。這導致了兩個問題 第一,很難有條件地宣告乙個變數,把它在乙個if語句塊之外 在這種情況下,它會超出範圍時,塊的結束 第二,所有陣列的大小必須決定在執行程式之前。例如,以下是不合法的 1 2 3 4 5 cout how m...
map下標操作
強烈推薦人工智慧學習 之前提到過有關map下標操作,但是今天這個更複雜一點了,寫下來學習一下。struct node int main map iterator it it maptest.find 2 find函式返回乙個迭代器 if maptest.end maptest.find 1 cout...
傳指標and解引用
乙個函式的改變要影響另乙個函式需要兩個條件 1 傳指標。2 解引用。通過交換a和b數值的例項來說明其重要性 在主函式中輸入a和b的值 int a 10 int b 20 預期輸出結果為a 20 b 10。明顯與預期結果不符。原因 沒有傳指標!具體操作為 也與預期結果不符。原因 沒有解引用。與預期相符...