[問題] 關於 *const 的宣告

看板C_and_CPP (C/C++)作者 (路過的鴨)時間14年前 (2012/05/19 00:54), 編輯推噓3(308)
留言11則, 7人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) MinGW 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 我最近想測一下 const 使用方法,於是有了最後面的程式。 主要問題是關於 int *const *const *const *const *const p=s5; 我在網路上查了一下,const一般是修飾前面的東西,在這都是修飾 * 但我不懂為什麼當const斷掉(?),如 int * *const * *const * p=s5; 的時候,編譯會噴ErrorQQ 原本以為是DevC++爛掉,後來換了compiler還是炸掉QQ 喔對了,當const沒斷掉,如 int * *const *const *const * p=s5; 的時候都不會噴Error,實在是搞不太懂(汗 餵入的資料(Input):預期的正確結果(Expected Output):錯誤結果(Wrong Output): 他Error了QQ 程式碼(Code):(請善用置底文網頁, 記得排版) int main() { int i; int *s1=&i; int **s2 = &s1; int ***s3 = &s2; int ****s4 = &s3; int *****s5 = &s4; int *const *const *const *const *const p=s5; return 0; } 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.246.248

05/19 01:07, , 1F
這是惡搞嗎= =
05/19 01:07, 1F
認真的啦XDDDD 想搞清楚C++的一些運作方式(?)

05/19 01:13, , 2F
看到鬼,寫這樣誰看得懂,我要是你的同事一定找你單挑
05/19 01:13, 2F
這...哪天真的有人這樣寫我可以去打車輪戰XD 是說我稍微修一下變數名稱 推 Arton0306:#1B_2w2Uj 跟這個有關 不過我從來沒遇到要這樣寫的code 05/19 01:28 謝謝!我沒爬到那麼上面的文(汗 我會仔細看看的 ※ 編輯: duckingod 來自: 114.42.246.248 (05/19 01:36)

05/19 01:48, , 3F
到最後還不是變成組語,一切都沒意義
05/19 01:48, 3F

05/19 01:52, , 4F
可以去查一下C++的規格書= ="
05/19 01:52, 4F

05/19 02:00, , 5F
Z->3->8->3 好像類似
05/19 02:00, 5F

05/19 02:02, , 6F
不允許在 const, non-const 之間腳踏兩條船呀
05/19 02:02, 6F

05/19 02:03, , 7F
否則你左手摸 const 物件,右手又用 non-const 指標改它
05/19 02:03, 7F

05/19 06:30, , 8F
const 後面只要有兩個星號就不行
05/19 06:30, 8F

05/19 06:47, , 9F

05/19 06:49, , 10F
星號左邊的 const 表示不能改值,右邊表示不能改指標
05/19 06:49, 10F
謝謝各位@@ 所以說這算是C++避免轉型時讓const的定義有bug(?)所做的處理囉 目前的話是對const搞來搞去找出了好多原本不知道的事XD 繼續研究去... ※ 編輯: duckingod 來自: 114.42.246.248 (05/19 15:36)

05/21 00:53, , 11F
寫這樣單挑+1 XD
05/21 00:53, 11F
文章代碼(AID): #1Fjdx5AL (C_and_CPP)
文章代碼(AID): #1Fjdx5AL (C_and_CPP)