指標和const限定符搭配

2021-06-21 12:32:30 字數 829 閱讀 4195

指標和const搭配不同,對所操作的物件能進行的操作也不同,從組合上看,無非有三種組合:

其中type可為int、char等基本資料型別,也可為構造資料型別

1、const type *ptr:我們稱此種組合叫指向const物件的指標

linux核心中有很多函式引數就是此種型別,比如

void *memcpy(void *__dest, __const void *__src, size_t __n)

大家可以看到,第二個引數就是用const來修飾的,作用就是在函式內部,不能修改const所修飾的指標的內容,但是入參可以傳入任何物件。

總之一句話,可以修改指向const物件的指標指向不同的物件,但是不能修改其內容。

2、type *const ptr,也可以是type const *ptr:我們稱此種組合為const指標,需要注意的是定義此種指標需要在定義時進行初始化。

一句話總結此種指標的特性:可以修改其指向的物件的值,但是不能修改其所指的物件,也就是說一旦這個指標指向了乙個物件,那麼他將始終指向這乙個物件,不能再將其指向其他物件。

int temp = 5;

int temp2 = 6;

int *const ptr = &temp;  // ok,定義時初始化

ptr = &temp2;   //error,不能修改其指向的物件

*ptr = 100;         //ok,可以修改其指向物件的值

3、const type *const ptr:我們稱此組合為指向const物件的const指標,他兼有以上兩種組合的特性:一旦定義了這個指標指向某個物件,將永遠不能再讓其指向其他物件,同時也不能修改其所指向物件的內容。

指標和const限定符

const int p 1,表示p指向乙個整型變數,並且該變數為const的。2,可以更改p的值,不可以更改它所指向物件的值。3,它可以指向非const型別的int變數 int const p 1,表示p指向乙個整型變數,該變數為非const的 2,不可以更改p的值,一旦初始化不可更改,單可以更改它...

指標和const限定符

1 指向const物件的指標 const double pi 3.14 double ptr error ptr is a plain pointer const double cptr ok cptr is a pointer to const 不能用void 指標儲存const物件的位址,而必須...

指標和const限定符

一 指向const物件的指標 1 定義格式 const 型別 指標名 const放在型別名的前面,它是用來限定物件的型別的,即物件的型別是 const 型別 2 由於物件是const型別,在定義的時候進行了初始化之後就不能被修改,所以通過指向const物件的指標修改物件的值是錯誤的。3 把乙個con...