c 字元指標的特殊之處

2021-05-23 15:36:27 字數 856 閱讀 4065

如果我們對乙個非字元的指標進行操作,方法是這樣的: 

定義: 

(1)int a=7; int *p=&a; 或者 

(2)int a=7; int *p; p=&a; 或者 

(3)int a=7; int *p; *p=a; 

(1)這樣定義的原因是因為等號兩邊的型別必須匹配,int *p=&a; 等號左邊定義的是乙個指標,指標的內容是位址,所以等號右邊也應該是位址,&a就是取空間a的位址; 

(2)int *p; p=&a; 為什麼不是 *p=&a 而是 p=&a; 因為在定義的時候「*」只是說明p是乙個指標,而p也是乙個變數,不過是儲存位址的一種特殊的變數,對於變數使用,我們都是直接使用它的名字,就好象,我們定義個常量 const a=7; 我們要呼叫它的時候直接使用a就可以了,並不需要帶上 const 修飾,這裡也一樣,用指標變數時並不需要帶上「*」; 

(3)而第三種情況中的 *p=a;中的「*」和第二種裡面是不同的,這裡的「*」是取內容符,與之相反的是取位址符「&」,分析一下,第三種情況中,等號左邊是*p表示對指標p取內容,它的內容指向記憶體中的某個已經在開始通過 int *p; 定義好的空間裡(比較確切一點的說法是,p在定義的時候,其內容裡的位址指向記憶體中某個未知的空白區域,即未占用,不受保護的記憶體空間),這個空間裡存放的資料型別是整型,所以等號的右邊也應該是整型才能匹配,所以是 *p=a; 這裡的「*」和定義時候的是不同的,這一點很重要。 

其實上面的都是些題外話,我要說的其實是關於指標的輸出的一些問題。我們利用上面定義好的進行輸出操作。 

輸出指標的內容(即所指向空間的位址):cout《這個標頭檔案哦  

本文**:http://uh.9ria.com/space-17442-do-blog-id-5506.html

C 字元指標的特殊

如果我們對乙個非字元的指標進行操作,方法是這樣的 注意 int p 則p i 等價於 p i 定義 1 int a 7 int p a 或者 2 int a 7 int p p a 或者 3 int a 7 int p p a 1 這樣定義的原因是因為等號兩邊的型別必須匹配,int p a 等號左邊...

Linux案例之處理 M特殊字元

產生原因 dos windows 系統 使用的斷行字元為 m 我們稱為 cr 與 lf 兩個符號。而在 linux 下,則是僅有 lf 這個斷行符號。所以,當在 linux 下開啟windows檔案時,就會多了乙個 m 的符號。處理方案 dos2unix filenamesed i s m g fi...

C 中的特殊字元

特殊字元 c c 語言規範 2.4.4.4 字元 字元表示單個字元,通常由置於引號中的乙個字元組成,如 a character literal 字元 character 字元 character 字元 single character 單字元 escape sequence 簡單轉義序列 hexad...