(1) const int *ptr
宣告一個 pointer 指向 const int,所以無法藉由指標更改變數值
const int foo = 5;(2) int const *ptr
int *ptr = &foo;
*ptr = 10; /* 這是錯的 */
情況同上,宣告 pointer 指向 const int。
(3) int* const ptr
在這個用法中,const 用來描述 ptr 變數,所以是宣告一個 const pointer,表示 pointer 初始時就決定要指向誰,之後不能再更改。
int foo, bar;
int* const ptr = &foo; /* ptr 指向 foo 從一而終,不能再更改 */
ptr = &bar; /* 這是錯的 */
沒有留言:
張貼留言