C語言 指標變數本質

2021-10-23 03:22:48 字數 688 閱讀 6985

c語言指標是乙個經常使用的變數,可是經常在二級指標**指標中搞混,指標的本質就是乙個int型的變數,只不過這個變數是記憶體塊的位址,通過在這個變數前面加星號可以間接的訪問這個記憶體塊的內容。通過下面的示例可以清晰的明白指標的本質,

#include

typedef

struct

teracher;

intget

(teracher *

*p)*p = tem;

return0;

}int

main

(int argc char

**ar**)

這個例子就是通過二級指標間接申請記憶體,我們看一下執行過程

先定義乙個t1指標,t1的內容是空的,然後呼叫get

()函式,將t1的位址賦值給p,這樣就可以通過*p來修改t1的內容,

然後在get

()函式中,定義乙個tem的指標,tem內容也是空的,

然後申請乙個teracher型別大小的空間,將首位址賦值給tem,這樣tem就儲存著剛才申請記憶體區的首位址,通過*tem就可以訪問申請的記憶體區,

然後將tem的內容賦值給*p,也就是將tem的內容賦值給t1,也相當於將剛才申請的記憶體塊首位址賦值給了t1,

這樣就相當於間接申請了記憶體給t1.然後就可以通過*t1間接修改剛才申請記憶體塊的值。

c語言複習之指標本質

程式中的白變數只是一段儲存空間的別名,那麼是不是必須通過這個別名才能使用這段儲存空間。答案 不一定,可以用指標來進行修改。可以把指標當做一種特殊變數。這段程式裡面有兩個注意點,就是 pi,指標也是有儲存位址的。還有後面sizeof 型別指標 都是一樣的,因為指標記憶體的大小所有系統的多少位決定的,就...

C語言提高03 變數本質

變數概念 既能讀又能寫的記憶體物件,稱為變數 若一旦初始化後不能修改的物件則稱為常量。變數本質 1 程式通過變數來申請和命名記憶體空間 int a 0 2 通過變數名訪問記憶體空間 一段連續 記憶體空間的別名 是乙個門牌號 3,修改變數有幾種方法?1 直接 2 間接記憶體有位址編號,拿到位址編號也可...

c語言變數儲存的本質

1 給定的值若是帶 符號 需將負數轉為補碼形式。若給定的數無符號表示 即無 號,即為補碼 負數補碼方法 除符號位外其餘位取反 反碼 再加1 反碼 1 char 1 二進位制儲存格式,變換如下 1000,0001 反碼 1111,1110 補碼 1111,1111 0xff 所以char a 1 和c...