Re: 請問指標的問題~~
※ 引述《avhacker (我想把整片天空打開)》之銘言:
: ※ 引述《junshung@kkcity.com.tw (... (b) pic)》之銘言:
: : 請問各位程式高手 , 書上歸類三種有關指標的const
: : 看完仍似懂非懂 @@"
: : (我還很弱 ^^")
: : 1 指向常數指標
: 指標指向一個常數(不能修改的值)
不能透過指標修改所指對象(物件)的值, 但是指標本身為"非常數",
所以可以改變所指對象[ 也就是指標本身的值 ].
雖然名為指向常數指標, 但是對象也可以不是常數:
int num = 0;
const int *ptr_a = 0;
ptr_a = # // 修改指標值 ok
num = 2; // 直接改物件值 ok
*ptr_a = 3; // 經指標改值 error
: : 2 常數指標
: 指標本身是個常數,就是說指標本身不會變,因此不會改變所指之處.
指向非常數物件的常數指標:
指標本身是個常數, 不會改變所指對象, 但是可以透過指標
來修改對象的值.
int num = 0;
int *const ptr_b = #
*ptr_b = 2; // 經指標改值 ok
ptr_b = 0; // 修改指標值 error
: : 3 指向常數的常數指標
: 上面兩項加在一起就是這個了.
const int num;
const int *const ptr_c = #
不論是指標本身或是所指對象的值都不允許更動.
: : 尤其是1跟2 有點搞混 希望各位大大能給些例子說明它們的不同
: : 謝謝
小補充一下例子和額外的一點說明.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.231.68.25
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):