關鍵字const詳解

2021-05-22 01:01:22 字數 1155 閱讀 6599

關鍵字const:

1、用關鍵字const定義變數指所定義的常量。即恆定的變數,即不可改變的變數。

例:  const int i=10;

此時 i 就是乙個整型的常量,其值不能改變。

在c++中如果用const定義乙個物件,那麼物件中的成員變數就是常數,不能改變(只能為初始化的值),如果用const定義類中的成員函式,那麼這個函式就不能去改變物件的成員變數。(相當於this指標為指向常量的指標)

例:  const car car;//car為類  car為定義的物件  car為常量

2、const與#define 的區別:

#define 的特點是純粹的文字替換,不存在型別的問題,而const 定義的常量則是有型別的常量,這樣編譯器可以更多的察覺錯誤。

3、當 指標 遇到 const 時:

const int *p;//指向整型常量的指標,即指向的是常量,指標也可以指向的別的位址,但指向的常量的值是不能改變的。

int * const p;//指向整型變數的常量指標,即指向的位址不可以改變,但指向的是變數,是可以賦值的

const int * const p;/指向整型常量的常量指標。

const int *p;  //指向整型常量的指標

int i=10,j=10;  //

p=&i;  //指標指向i  正確

p=&j;  //指標指向j  正確

*p=1;  //錯誤

j=10;  //正確

指向常量的指標,其指向的物件可以改變,但其指向的內容不允許改變!!!

在c++中有乙個const指標的應用,就是在函式傳參的時候,本來傳值就能解決的問題,但是考慮到程式的穩定性,有如下分析:(假如所傳的值是乙個物件)

1、如果這個物件很大,所以傳值的話,會很浪費記憶體和時間,並且在子函式開始和結束要呼叫建構函式和析構函式。

2、如果傳入指標的話,就是把物件的位址傳入了,這樣物件的成員變數就被暴露了,本意是不改變物件的成員變數,但這樣會存在隱患。所以我們想到利用const指標,傳入的是指向常量的指標。即:(const car *p或const car * const p)的形式。這樣,在函式中就不會改變物件的成員變數了,也不存在物件拷貝的問題。

3、(c++中)還是上面這個問題,使用引用照樣能解決問題,比const指標還方便些,用(const car &rp)

關鍵字const用法詳解

摘自 物件導向是c 的重要特性,但是c 在c的基礎上新增加的幾點優化也是很耀眼的 以下幾點很重要,學不好後果會很嚴重 const 限定符 1.宣告變數只能被讀 const int i 5 int j 0 i j 非法,導致編譯錯誤 j i 合法 2.必須初始化 const int i 5 合法 co...

關鍵字const的詳解

1 const變數不是常數,是乙個變數 左值 只是你不能修改它 2 在定義該const變數時,必須需要對它進行初始化 3 對指標來說,可以指定指標本身為const,也可以指定指標所指的資料為const,或二者同時指定為const 4 在乙個函式宣告中,const可以修飾形參,表明它是乙個輸入引數,在...

c關鍵字const詳解

最近被人問了個技術問題,感觸很深,就是關於const關鍵字的基本用法判斷,看到這個問題我其實挺開心的,因為去年我在書上記錄過c 語言的幾個常用關鍵字的基本用法,最近用的少了,都有點生疏遺忘了,技術就是一把容易生鏽的dao,得經常磨磨才不怕問 1.const修飾變數 const 關鍵字用的比較多的用法...