const用法詳解

2021-10-10 07:52:37 字數 1432 閱讀 3049

使用#define的不安全性

# include

using namespqce std;

intmain()

輸出 :t2 is 2

原因:c++把第七行語句解釋為:

cout<<"t2 is "《用const取代#define

# include

using namespqce std;

intmain()

輸出:t2 is 0

指向常量的指標

所指物件為常量,指標為變數

const

char

*p =

"good";*

(p+2)=

"i";

//錯誤

p ="very"

;//正確

int i =5;

const

int*p =

&i;*p =6;

//錯誤

i =6

;//正確

作用:防止無意修改引數的值

# include

using

namespace std;

void

mystrcpy

(char

* dest,

const

char

*src)

intmain()

指標常量

在指標名前常量const,表示指標本身是常量

char

*const p =

"good"

;p =

"very"

;//錯誤,指標不能修改

*(p+2)

='i'

;//正確,指向的內容可以修改

指向常量的常量指標

指向內容和指標都為常量

const

char

*const p =

"good"

p ="very"

;//錯誤

*(p+2)

='i'

;//錯誤

注意:

const物件的位址只能賦值給指向const物件的指標,但是指向cosnt物件的指標也可以指向非const物件

const

int i =5;

int*p1 =

&i;//錯誤

const

int*p2 =

&i;int j =6;

p2 =

&j;//正確

const用法詳解

物件導向是c 的重要特性.但是c 在c的基礎上新增加的幾點優化也是很耀眼的 就const直接可以取代c中的 define 以下幾點很重要,學不好後果也也很嚴重 1.const常量,如const int max 100 優點 const常量有資料型別,而巨集常量沒有資料型別。編譯器可以對前者進行型別安...

const 用法詳解

物件導向是c 的重要特性.但是c 在c的基礎上新增加的幾點優化也是很耀眼的 就const直接可以取代c中的 define 以下幾點很重要,學不好後果也也很嚴重 1.const常量,如const int max 100 優點 const常量有資料型別,而巨集常量沒有資料型別。編譯器可以對前者進行型別安...

const用法詳解

看 到const 關鍵字,很多人想到的可能是 const 常量,其實關鍵字 const 並不能把變數變成常量!在乙個符號前加上 const 限定符只是表示這個符號 不能被賦值。也就是它的值對於這個符號來說是唯讀的,但它並不能防止通過程式的內部 甚至是外部 的方法來修改這個值 c專家程式設計 p21 ...