C++ 常量指針&指針常量

一、常量指針


常量指針:顧名思義就是指向常量指針使用常量指針可以防止使用該指針來修改所指向的值。聲明形式爲const type *pttype const *pt

// 不希望函數內部修改參數的值(或者說是函數調用的值),例如求和但不希望改變原來的值
int sum(const int *pA, const int *pB) {
	int ans;
	//*pA += 1;  //error: assignment of read-only location ‘* pA’
	ans = *pA + *pB;
	return ans;
}
//------------------------
int value = 10;
const int const_value = 9;		// const變量
int *pt = &const_value;			// invalid  將const變量的地址賦給常規指針,不可行
//補充解釋:若允許這樣賦值,則可以通過pt來修改const_value的值,這使得變量定義的const很荒謬
const int *pt_const = &const_value;		// valid 將const變量的地址賦給const指針,可行

注:能用就儘可能使用const

  1. 可以有效避免無意間修改數據導致的錯誤
  2. 使用const作爲函數形參,可接受const和非const類型實參,否則無法接受const實參

二、指針常量


指針常量:即數據類型爲指針類型常量將指針本身定義爲常量,可以防止改變指針所指向的位置。聲明形式爲type* const pt

int num;
int* const p_num = #

三、指向常量的指針常量


指向常量的指針常量:名字聽起來繞,解釋一下就是——本身是一個常量,類型爲指針類型,它所指向的對象一個常量。聲明形式爲const type* const pt

const int value = 10;
const int* const pt = &value;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章