C 中的取位址符

2021-10-05 13:36:57 字數 804 閱讀 8952

這個符號特別容易混淆, 因為在c++中,&有兩種不同用法:

獲得變數位址

引用傳遞

第乙個例子,

int main()

0x7ffd05129510

hello

[finished in 0.2s]

例子中, 變數p使用*宣告為指標, 將變數s的位址通過&符號賦值給p.

int main()

hello

hello

new hello

new hello

0x7ffc844cc660

0x7ffc844cc660

1[finished in 0.2s]

例子中, 變數r是變數sreference, 在記憶體空間中指代相同的位置.

&可以用於函式變數引用宣告,

void foo(std::string& str)

int main()

在這個例子中, 變數str在函式foo中是變數s的 reference, 所有對str的操作, 相當於對s的操作.

C C 中取位址符 的語義

在c語言中,符號大家一定很熟悉吧。它除了可以作為按位運算 與 之外還有更常用的功能 取變數位址。我們首先看下面乙個簡單的例子 include int main void 上面 中,指標p指向變數a的位址。在c c 中,每個變數都有其相應的位址,通過在變數識別符號前加 符號即可獲得變數的位址。那麼我們...

取位址符的用法總結

一種是按位與 1 2 0 一種是取位址 int p a 一種是宣告引用,相當於定義變數別名 int a 3 int b a b是 a的引用,a,b是同乙個變數 b 4 a也變化為 4int c 2 b c 是賦值給b或 a,而不是把b作為 c的引用,引用一旦被宣告,引用物件不可更改 引用的實質是指標...

c語言 取位址運算子的理解

例如 int a 1 假設a的位址是0x7dfe88 int p int 0x7dfe88 int num 1 int p1 以上是一段簡單的給指標p,p1賦值的 0x7dfe88是一段單純的十六進製制位址,但是當位址轉指標的時候卻必須加上強轉 int 如果不加強轉,那麼編譯器就會提出警告 warn...