作者windf4 (windf4)
看板Programming
标题Re: 请问指标的问题~~
时间Wed May 9 15:57:07 2007
※ 引述《avhacker (我想把整片天空打开)》之铭言:
: ※ 引述《[email protected] (... (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