java靜態(tài)變量存儲(chǔ)在哪個(gè)區(qū) 為什么C語(yǔ)言指針初始化左邊是值,右邊是地址?
為什么C語(yǔ)言指針初始化左邊是值,右邊是地址?其實(shí)C語(yǔ)言中的指針也是一種變量,但這種變量有點(diǎn)特殊。指針變量中存儲(chǔ)的值是內(nèi)存地址,int variable等公共變量中存儲(chǔ)的值是相應(yīng)的int值。對(duì)于變量初始
為什么C語(yǔ)言指針初始化左邊是值,右邊是地址?
其實(shí)C語(yǔ)言中的指針也是一種變量,但這種變量有點(diǎn)特殊。指針變量中存儲(chǔ)的值是內(nèi)存地址,int variable等公共變量中存儲(chǔ)的值是相應(yīng)的int值。
對(duì)于變量初始化或賦值,等號(hào)“=”右側(cè)獲得的值是變量的存儲(chǔ)值。對(duì)于指針變量,存儲(chǔ)的值是地址。示例代碼如下:
有關(guān)C指針的更多知識(shí),建議參考經(jīng)典C語(yǔ)言書(shū)籍“C編程語(yǔ)言”和“C和指針”。
c語(yǔ)言的指針中*操作符的本質(zhì)是什么?
總結(jié)一下:
1。*首先,一個(gè)算術(shù)運(yùn)算符
2。定義指針。例如,下面的定義語(yǔ)句:
int a
定義一個(gè)變量a,其數(shù)據(jù)類(lèi)型為int
看下面的定義語(yǔ)句:
int*b
定義一個(gè)int*變量,如何理解int*可以如下:
*b是int type,它對(duì)應(yīng)一個(gè)存儲(chǔ)單元,它可以存儲(chǔ)int類(lèi)型的數(shù)據(jù),這個(gè)單元的地址存儲(chǔ)在B中,此時(shí),B是int*數(shù)據(jù)。因此,您可以執(zhí)行以下操作
a=*b
但是反向操作是錯(cuò)誤的
b=a
您需要使用int類(lèi)型變量來(lái)給出int*[b=&a
在這種情況下,帶有指針類(lèi)型形式參數(shù)的函數(shù)調(diào)用方法是明確的。
理解時(shí)應(yīng)注意兩點(diǎn)*
1。在變量定義語(yǔ)句中出現(xiàn)時(shí),它與數(shù)據(jù)類(lèi)型結(jié)合起來(lái)表示相應(yīng)數(shù)據(jù)類(lèi)型的指針
2。在一般語(yǔ)句中出現(xiàn)時(shí),通常與指針變量相結(jié)合,即指針變量的存儲(chǔ)單元