指標操作 加減 解引用 下標操作

2021-06-01 23:26:37 字數 792 閱讀 7789

#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。明顯與預期結果不符。原因 沒有傳指標!具體操作為 也與預期結果不符。原因 沒有解引用。與預期相符...