Re: [問題] c how to program P.274~275宣告的pointer方式

看板C_and_CPP作者 (software everywhere)時間14年前 (2010/01/09 02:16), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/3 (看更多)
※ 引述《ooww (亞古獸)》之銘言: : (第一次發問,請鞭小力一點) : 1. const int *ptr; : 2. int * const ptr; : 3. const int *const ptr; : 這三個宣告差在哪裡? : 第1個我了解, : 第3個的" * "跟const貼在一起是什麼意思? 分開看 const 修飾 它能修飾的... mem block const double PI=3.1415; mem中挖一個 double 然後 這裡面的value 不能動 const int * p; 看p 先看到 * so 它是一個pointer 對他deference (*p) --> 你就看到 const int了 代表 p 可以亂指 但是他指到的block 不能賦值 int * const ptr; 看ptr 看到* 被const修飾 so ptr 不能assing 其它值 但是對ptr deference得到 (*ptr) --> int 這個沒有被const保護 so你可以對 ptr deference後的 mem block 給值 ------------------------------------------------------------ const 修飾 最簡單的閱讀就是 先不管他 只看* const 放*左邊修飾 左側mem block, 放右邊 修飾 右側mem block ex: int N; 1 2 //把const 擺在 1 or 2 相同 int * pN ; 1 2 3 4 // 12一樣; 34一樣 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.115.138

01/09 03:16, , 1F
不能放在4.
01/09 03:16, 1F
文章代碼(AID): #1BHtPjj7 (C_and_CPP)
文章代碼(AID): #1BHtPjj7 (C_and_CPP)