指標和const限定符

2021-07-10 16:32:09 字數 795 閱讀 6016

一、指向const物件的指標

1、定義格式:const 型別 *指標名

const放在型別名的前面,它是用來限定物件的型別的,即物件的型別是(const 型別)。

2、由於物件是const型別,在定義的時候進行了初始化之後就不能被修改,所以通過指向const物件的指標修改物件的值是錯誤的。

3、把乙個const物件的位址賦給乙個普通的、非const物件的指標也是錯誤的。因為指向const物件的指標也具有const特性,即不能用指向const物件的指標修改其指向的值。

4、可以把非const物件的位址賦給指向const物件的指標。此時不能使用該指標修改其值,可以用其他方法修改其值。

5、指向const物件的指標一經定義就不能用其修改所指向物件的值。

二、const指標

1、定義格式:型別 *const 指標名

const放在指標名的前面限,它是用來限定指標的型別的,即指標值本身一經定義後不能被修改。

2、可以用指向物件的const指標修改物件的值。

三、指標和typedef

例子:typtdef string *pstring;

const pstring cstr;

請問cstr是什麼型別?

答:通過typedef定義了string *型別,也就是指向string物件的指標型別;第二句中不能把pstring當做文字擴充套件,如果當做文字擴充套件就是const string *cstr,也就是指向const string物件的指標。由於const修飾的是pstring型別,即是const的指標型別,所以cstr是指向string物件的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搭配不同,對所操作的物件能進行的操作也不同,從組合上看,無非有三種組合 其中type可為int char等基本資料型別,也可為構造資料型別 1 const type ptr 我們稱此種組合叫指向const物件的指標 linux核心中有很多函式引數就是此種型別,比如 void memc...