Re: [問題] c how to program P.274~275宣告的pointer方式
看板C_and_CPP作者softwind (software everywhere)時間14年前 (2010/01/09 02:16)推噓0(0推 0噓 1→)留言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
01/09 03:16, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):