C,C++——指針和常量

一 常量關鍵字(const)

常量使用關鍵字const修飾,如定義一個整型常量:const int a = 10;

  • 上面語句限定一個變量在定義後不允許被改變只讀,等同於常量,且必須初始化 賦值。

定義常量(兩種)

#define PI 3.14 //宏定義
const int maxScore = 100;//const

二 常量指針

指向常量的指針。定義如下兩種方式都行

在這裏插入圖片描述
指向常量的指針的特點:
(1)無法通過指針修改指向的數據;
(2)可以修改指針變量本身的指向;
(3)該指針能夠指向常量;
如下舉例說明:

const int A = 3;
int B = 5;
const int *pInt = &A;
*pInt = 10; //錯誤,無法修改
pInt=&B; //正確,可以改變指向

將一個指向常量的指針傳遞給普通指針將會導致一個編譯錯誤。

三 指針常量

在指針定義語句的指針名前加const,表示指針本身是常量,稱爲指針常量。格 式如下:
在這裏插入圖片描述
指針常量特點
(1)指針變量不允許修改
(2)指針變量指向的內存值可以修改
(3)修飾符const與<指針變量>緊鄰

   int a = 0, b = 0;
	int* const ptr = &a;
	*ptr = 1; //正確
	ptr = &b; //錯誤

	char strText[32]="head";
	char *const strName=strText;
	strName=strName+2; //錯誤,無法修改指向
	*strName='n'; //正確,可以修改
	*(strName+2)='r'; //正確

四 指向常量的指針常量

指向const型變量的const型指針變量。定義格式如下
在這裏插入圖片描述
特點:
(1)指針變量不可修改
(2)指針變量指向的內存值也不可修改

const int maxScore = 100;
const int *const pcMax = &maxScore;//指向不能改,指向的內容也不能改
//pcMax = &math;//報錯,指向不能修改
//*pcMax = 150;//報錯,指向的內容不能修改
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章