[問題] int 轉const int

看板C_and_CPP作者 (Terry)時間12年前 (2011/12/01 00:42), 編輯推噓3(3023)
留言26則, 6人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 問題(Question): 請教一下,如果要int 轉const int該如何使用呢? 我的寫法是: int i; const int &ci=i; 不過好像不太行,compiler會過不去。 想詢問一下,正確的用法是什麼. 謝謝幫忙 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.121.82

12/01 00:52, , 1F
const int ci = *(const int*)&i; ??
12/01 00:52, 1F

12/01 00:52, , 2F
為什麼你要多打一個 &
12/01 00:52, 2F

12/01 00:53, , 3F
明明就 const int ci = i 就好啦
12/01 00:53, 3F

12/01 00:54, , 4F
如果你的問題是int轉成const int&
12/01 00:54, 4F

12/01 00:55, , 5F
!! 是啊!我想複雜了.謝謝 littleshan.
12/01 00:55, 5F

12/01 00:55, , 6F
請先思考一下你為什麼要做這件事
12/01 00:55, 6F
因為我想要第一次的時後數值是由我決定的,決定好之後就不動了。 其實這是數值就是我在寫模擬器的伺服器數量,決定好之後就不改了。 可是最近一直在測試伺服器的數量對我的數據看有沒有影響,就要一直去 VC裡面COMPILER,覺得好煩....@@

12/01 00:55, , 7F
應該要&吧,我剛查書本他也是這樣子打@@..
12/01 00:55, 7F

12/01 00:55, , 8F
還是我會誤了...
12/01 00:55, 8F
※ 編輯: bernachom 來自: 114.42.121.82 (12/01 00:58)

12/01 01:01, , 9F
tropical72大,你的方法應該是可以的
12/01 01:01, 9F

12/01 01:01, , 10F
但是我不知道為什麼在我的程式碼吃不進去
12/01 01:01, 10F

12/01 01:01, , 11F
我在查是不是有什麼東西不能吃從int轉const int的...
12/01 01:01, 11F

12/01 01:02, , 12F
感謝幫忙..
12/01 01:02, 12F

12/01 01:55, , 13F
const int ci = i; ← 這樣寫不行嗎 (抱頭
12/01 01:55, 13F

12/01 01:56, , 14F
不要病急亂投醫,加了 & 是參照的意思
12/01 01:56, 14F

12/01 01:58, , 15F
書上會加 & 那顯然是在示範參照的用法
12/01 01:58, 15F

12/01 01:58, , 16F
和你要解決的問題不見得相同啊!
12/01 01:58, 16F

12/01 03:23, , 17F
一般情況下,reference不能有cv-qualifier。
12/01 03:23, 17F

12/01 03:45, , 18F
你累了嗎?
12/01 03:45, 18F

12/01 04:18, , 19F
可以過呀, 你難道是用山寨版的VC++? 用參考一方面也是
12/01 04:18, 19F

12/01 04:19, , 20F
要考慮到它是否會比你直接複製還來得快, 還省記憶體,
12/01 04:19, 20F

12/01 04:19, , 21F
所以一個衡量方式是當一個型別 T, 當 sizeof(T) <
12/01 04:19, 21F

12/01 04:20, , 22F
sizeof(T*) 那麼這種型態還是直接複製比較好, 而且
12/01 04:20, 22F

12/01 04:21, , 23F
直接用 const int 編譯器甚至還可以幫你做加速
12/01 04:21, 23F

12/01 04:23, , 24F
另一個 l-value ref to const 常出現在參數列的原因其
12/01 04:23, 24F

12/01 04:24, , 25F
實是為了綁定傳進來的右值引數, 沒有太大理由
12/01 04:24, 25F

12/01 11:22, , 26F
真的累了,sorry囉
12/01 11:22, 26F
文章代碼(AID): #1ErbpVey (C_and_CPP)