指標常量、和常量指標的比較
阿新 • • 發佈:2019-01-06
/* 定義一個常量a,並初始化a的值為100 */ int const a = 100; /* 定義一個常量指標p, 指向一個常量a */ int const *p_a = &a; /* ps: 常量只能用常量指標 */ /* 常量指標: 指向常量的指標變數叫“常量指標” a> 定義格式 TYPE const *xxx = yyy b> 理解: 根據“常量指標”的的定義可以看出“常量指標”是一個指標。 該指標具有以下特點: b.1> 該指標本身是一個變數,所以該指標是可以被修改的 b.2> 該指標只能指向一個常量 b.3> 對於上述列子。const修飾的是*p_a,所以*p_a是“不變的,不可修改的”。又因為 *p_a === a,所以a也是不可修改的(符合a的定義) */ /* 定義變數b, 初始化為100 */ int b = 100; /* 定義一個指標常量 p_b */ int * const p_b = &b; /* 指標常量: 指標型別的常量叫“指標常量” a> 定義格式 POINTER_TYPE * const xxx = yyy b> 理解: 根據“指標常量”的定義可以看出“指標常量”是一個指標型別的常量。其本質資料型別仍然是一個指標。 該指標具有一下特點: b.1> 該指標本身是一個常量,所以該指標是不可以被修改的。 b.2> 該指標只能指向“非常量資料型別” b.3> 對於上述例子. const 修飾的是指標符號p_b(pointer),故該指標p_b是一個指標常量 */