C 指標必須初始化嗎?

2021-10-05 11:27:14 字數 547 閱讀 9705

定義乙個指標可以不用初始化,但是在使用指標時一定要確定它是否被初始化即是否指向了某乙個確定的可訪問的記憶體位置。

如:int* p;//定義乙個整型指標此時可以不初始化,但它的指向是不確定的可能指向了系統中某一重要的記憶體位置。

int a;

p=&a;//將p指向變數a,此時p的指向是確定的

當對p進行解引用時如*p=20此時就要看看p的指向是否已確定。由於上面我們將p指向了a變數所在記憶體位置,所以上面的操作是正確的。

再看如下程式:

#include

void

myputc

(char

* cptr)

intmain

(void

)

注意程式想通過傳位址方式在乙個函式中為字 符變數 c 賦乙個字元,但它引用了乙個空指標,這將引發執行時的段非法錯誤使得 程式異常終止 。該錯誤的發生是因為指標 cptr 未初始化,它指向了乙個非法的位址,所以在向它指向的單元賦值時發生了段錯誤。

初始化指標

includeusing namespace std int main nullptr 是 c 新標準引入的特性,visual c 2010 編譯器支援它。過去已經使用0或 null 編譯器將用 0代替此巨集 來初始化指標,當然它們現在仍然可以使用。但是,使用 nullptr 初始化指標要好得多。因...

C 類指標初始化

上面 的 會列印 a c 類指標定義的時候沒有初始化的時候,居然可以安全的呼叫類內部的成員函式而不出錯。在網上查了一下 初始化為null的類指標可以安全的呼叫不涉及類成員變數的類成員函式而不出錯,但是如果類成員函式中呼叫了類成員變數則會出錯,既然賦值為null的情況都可以使用,那麼自然不初始化的類指...

C 類指標初始化

上面的 會列印 a c 類指標定義的時候沒有初始化的時候,居然可以安全的呼叫類內部的成員函式而不出錯。在網上查了一下 初始化為null的類指標可以安全的呼叫不涉及類成員變數的類成員函式而不出錯,但是如果類成員函式中呼叫了類成員變數則會出錯,既然賦值為null的情況都可以使用,那麼自然不初始化的類指標...