傳指標and解引用

2021-08-21 16:01:51 字數 1006 閱讀 8815

乙個函式的改變要影響另乙個函式需要兩個條件:

1、傳指標。

2、解引用。

通過交換a和b數值的例項來說明其重要性:

在主函式中輸入a和b的值;int a = 10;int b = 20;預期輸出結果為a = 20;b = 10。

明顯與預期結果不符。原因:沒有傳指標!

具體操作為:

也與預期結果不符。原因:沒有解引用。

與預期相符,多測試幾組有代表性的資料。既傳指標又解引用,交換了兩個資料的值。

在這個例子中,除了1、2兩種可能的問題外,還可能出現以下這種錯誤。

系統直接崩潰。原因:定義的tmp是乙個野指標。

野指標,也叫懸掛指標,即未初始化的指標,沒有訪問許可權的位址(指標)。

注意:野指標不是空指標。

空指標:null,表明當前的指標無效。注意:不能對乙個無效的指標解引用。

todo:如下程式:

int a = 10;

int *p = &a;

p = null;

printf("%d\n",*p); 

程式會崩潰,因為不能對乙個無效的指標解引用。現將其中的p = null;用功能函式fun(p)替換,fun函式為:

void fun(int *p)

int main()

指標解引用

所有的變數使用到這一點,在本教程中有乙個共同點 該變數必須先宣告在編譯的時候。這導致了兩個問題 第一,很難有條件地宣告乙個變數,把它在乙個if語句塊之外 在這種情況下,它會超出範圍時,塊的結束 第二,所有陣列的大小必須決定在執行程式之前。例如,以下是不合法的 1 2 3 4 5 cout how m...

傳值 傳引用 傳指標

收藏 相關概念 c 三種傳遞引數方式 傳引數的值 稱值傳遞,簡稱傳值 傳引數的位址 稱位址傳遞,簡稱為傳址 和引用傳遞 稱為傳引用 相應的函式傳值呼叫,傳址呼叫和傳引用呼叫 形參 實參 函式定義時參數列中的引數稱為形式引數,簡稱形參 函式呼叫時參數列中的引數稱為實際引數,簡稱實參。實參和形參之間的資...

傳值 傳引用 傳指標

相關概念 c 三種傳遞引數方式 傳引數的值 稱值傳遞,簡稱傳值 傳引數的位址 稱位址傳遞,簡稱為傳址 和引用傳遞 稱為傳引用 相應的函式傳值呼叫,傳址呼叫和傳引用呼叫 形參 實參 函式定義時參數列中的引數稱為形式引數,簡稱形參 函式呼叫時參數列中的引數稱為實際引數,簡稱實參。實參和形參之間的資料傳遞...