看板 EE_DSnP 關於我們 聯絡資訊
各位好,我又來問愚昧的問題了XD 就像標題所寫的 我本來很卑劣的想要用 const char* &ptr = _target;//_target is char* _target 這樣來作一個ptr擁有_target所指的位置 而且ptr又不佔記憶體空間又不會怕他去改到*_target的值 但是! 正義果敢的g++發現了我的伎倆並且把他打了回票了... 我已經知道這樣寫compile絕對不會過了... 但我還是想要知道為甚麼不能讓他過@@" const char* ptr = _target//target is char* _target 會過,*ptr不能更改,很理想,但是會佔空間 char* &ptr = _target//target is char* _target 也會過,改*ptr就是改target const char &ptr = _target//target is char _target 還是會過,ptr不能改,也不佔空間 但是...到底有甚麼道理非要不能給奸詐狡猾的 const char* & 過呢? g++都很nice的,這其中一定有甚麼誤會吧!? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.37.107.4
anfranion:原PO想表達的是一個pointer的reference嗎@@ 10/17 00:01
a3785lexx:恩對啊 10/17 00:04
ilway25:我猜 char* const &ptr = _target; 才會過 10/17 00:29
bnsblue:樓上沒錯 10/17 00:30
ilway25:原來的意思是 reference to "pointer to const char" 10/17 00:30
bnsblue:另外若把_target變成 const char* _target也會過 10/17 00:30
bnsblue:如果照原po的寫法 修飾字"const"已經"跨進兩層"了 因此 10/17 00:40
bnsblue:不被允許 10/17 00:40
bnsblue:唔...好像也不太對...先忽略那個兩層的說法好了XD 10/17 01:03
a3785lexx:恩我的意思其實是,const char &的時候就給過 10/17 23:47
a3785lexx:也就是constant reference to character過了... 10/17 23:48
a3785lexx:const char*也過了...pointer to a constant char... 10/17 23:50
a3785lexx:所以是因為const char*這樣他會複製一份,原來const與否 10/17 23:51
a3785lexx:就不重要了,所以會過嗎? 10/17 23:51
a3785lexx:好像說錯了..const char&好像是reference to constchar? 10/17 23:53
bnsblue:reference不能用const修飾 所以樓上的才是對的 10/18 00:35
muxiv: 原PO想表達的是一個p https://noxiv.com 07/12 00:23