Re: [問題] 用函數設定參照的問題
看板C_and_CPP (C/C++)作者cuteSquirrel (可愛的小松鼠)時間1年前 (2023/11/11 21:51)推噓3(3推 0噓 12→)留言15則, 3人參與討論串2/2 (看更多)
這個範例是想展現 reference的特質
reference 相當於原本變數的別名 alias
(有些中文翻譯會寫成 "參考")
reference 宣告的時候就必須初始化綁定對象,而且一旦綁定,就固定綁定他一輩子。
範例中的 x 作為 傳參考int& 到function f裡面,綁定的是當初外面呼叫的int a=1
這時候在function f 裡面, x 的數值還是 1 (因為綁定的是 int a)
接著,function f 又return x 給原本的呼叫者
所以,回來 f(a)這一行 得到的就是 x
x 剛剛講過,綁定的是原本的變數a
這時候對 x 賦值 等價於 對變數a 賦值
f(a) = 5 等價於 x = 5 等價於 a = 5
所以,a 的值最終是 5
下方的範例做了小修改,可以留意,其實 x 和 a 操作的對象都位在同一個記憶體位置。
https://onlinegdb.com/ZxFCaqEKJQ
※ 引述《amamoimi (佛仔)》之銘言:
: 各位晚安打擾了
: https://onlinegdb.com/_DyNuxd2H
: 我一直不太明白為什麼為什麼這樣寫是合法的
: f(a)=5這行不是在把function call設值嗎
: 但是照理來說只能assign value給變數吧?(gpt這樣跟我講的,但是他又說我的例子不是
: 設值給f(a)@@)
: 不好意思我好像越問越基本了...謝謝大家
:
: ----
: Sent from BePTT on my OPPO CPH1943
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.37.175.73 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1699710714.A.1C1.html
推
11/12 09:31,
1年前
, 1F
11/12 09:31, 1F
→
11/12 09:31,
1年前
, 2F
11/12 09:31, 2F
→
11/12 09:31,
1年前
, 3F
11/12 09:31, 3F
→
11/12 09:31,
1年前
, 4F
11/12 09:31, 4F
→
11/12 10:22,
1年前
, 5F
11/12 10:22, 5F
→
11/12 10:22,
1年前
, 6F
11/12 10:22, 6F
→
11/12 10:22,
1年前
, 7F
11/12 10:22, 7F
推
11/12 11:03,
1年前
, 8F
11/12 11:03, 8F
→
11/12 11:04,
1年前
, 9F
11/12 11:04, 9F
→
11/12 17:39,
1年前
, 10F
11/12 17:39, 10F
→
11/12 17:39,
1年前
, 11F
11/12 17:39, 11F
→
11/12 17:40,
1年前
, 12F
11/12 17:40, 12F
→
11/12 17:41,
1年前
, 13F
11/12 17:41, 13F
→
11/12 17:42,
1年前
, 14F
11/12 17:42, 14F
※ 編輯: cuteSquirrel (114.37.175.73 臺灣), 11/12/2023 17:48:35
推
11/12 18:45,
1年前
, 15F
11/12 18:45, 15F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章