指標知識 二 指標初始化

2022-08-23 21:30:10 字數 1049 閱讀 3764

當宣告乙個指標的時候我們可能需要同時指定它們指向哪個變數,如:

int number;

int *tommy = &number;

這相當於:

int number;

int *tommy;

tommy = &number;

當給乙個指標賦值的時候,我們總是賦給它乙個位址值,而不是它所指向資料的值。你必須考慮到在宣告乙個指標的時候,

星號 (*) 只是用來指明它是指標,而從不表示間接引用操作符dereference operator (*)。

記住,它們是兩種不同操作,雖然它們寫成同樣的符號。因此,我們要注意不要將以上的**與下面的**混淆:

int number;

int *tommy;

*tommy = &number;

上面這一種是錯的。

在定義陣列指標的時候,編譯器允許我們在宣告變數指標的同時對陣列進行初始化,初始化的內容需要是常量,例如:

char * terry = "hello";

這個例子中,記憶體中預留了儲存"hello" 的空間,並且terry被賦予了指向這個記憶體塊的第乙個字元(對應』h』)的指標。

這裡需要強調,terry 儲存的是數值1702 ,而不是'h' 或 "hello",雖然1702 指向這些字元。

指標terry 指向乙個字串,可以被當作陣列一樣使用(陣列只是乙個常量指標)。例如,如果我們的心情變了,而想把terry指向的內容中的字元'o' 變為符號'!' ,我們可以用以下兩種方式的任何一種來實現:

terry[4] = '!';

*(terry+4) = '!';

記住寫 terry[4] 與*(terry+4)是一樣的,雖然第一種表達方式更常用一些。以上兩個表示式都會實現以下改變:

指標學習二 指標 位址

通過位址的呼叫來改變變數的值 includevoid f int p void g int k int main void f int p void g int k i 0063fe9c p 0063fe9c p 6 k 26定義乙個變數p,它位於2000單元,該單元存放了變數x的位址1000。此時...

指標使用(二)指標崩潰 野指標

指標崩潰 當指標表示無效指標時指標會產生崩潰 示例 include int main int main int main 野指標出現的情概況 1 定義指標未初始化 2 動態建立記憶體後記憶體free掉,沒有把 指標指向null 3 指標超出變數的作用範圍 當呼叫函式時,返回乙個指向棧記憶體的指標,因...

C語言 二 指標

一 指標概述 1.簡介 2.初始化 1 先定義後初始化 int a 10 int p p a 2 定義並初始化 int a 10 int p a 備註 在資料型別後,變數名稱前的 是乙個說明符,用來說明該變數是乙個指標變數。如果前面沒有資料型別,如 p,這裡的 是乙個指標運算子,用來取出指標變數所指...