c c 中const的使用

2021-10-23 01:57:29 字數 1585 閱讀 4899

有時候我們希望定義這樣一種變數,它的值不能被改變。具體的應用如下,直接上**:

#include

using

namespace std;

//const 使用的好處

//合理的利用const,

//1指標做函式引數,可以有效的提高**可讀性,減少bug;

//2清楚的分清引數的輸入和輸出特性

struct teacher

;int

test01

(const teacher *pt)

inttest02

(teacher *

const pt)

inttest03

(const teacher *

const pt)

intmain()

return0;

}

解釋:

c++編譯器對const常量的處理

當碰見常量宣告時,在符號表中放入常量。那有如何解釋取位址的呢?是這樣的:編譯過程中若發現使用常量則直接以符號表中的值替換,編譯過程中若發現對const使用了extern或者&操作符,則給對應的常量分配儲存空間。

c++中const符號表原理圖

結論:

c語言中的const變數:

(1)c語言中const變數是唯讀變數,有自己的儲存空間

c++中的const常量:

可能分配儲存空間,也可能不分配儲存空間 ,以下兩種情況分配空間:

(1)當const常量為全域性,並且需要在其它檔案中使用

(2)當使用&操作符取const常量的位址

1、c++中的const常量類似於巨集定義

const

int c =

5; ≈ #define c 5

2、c++中的const常量與巨集定義不同

const常量是由編譯器處理的,提供型別檢查和作用域檢查 ,而巨集定義由預處理器處理,單純的文字替換。

#include

using

namespace std;

//在func1定義a,在func2中能使用嗎?

//在func1中定義的b,在func2中能使用嗎?

void

function01()

void

function02()

intmain()

結論:

c語言中的const變數

(1)c語言中const變數是唯讀變數,有自己的儲存空間

c++中的const常量,可能分配儲存空間,也可能不分配儲存空間

(1)當const常量為全域性,並且需要在其它檔案中使用,會分配儲存空間

(2)當使用&操作符,取const常量的位址時,會分配儲存空間

(3)當const int &a = 10; const修飾引用時,也會分配儲存空間

C C 中怎麼使用Const

c 中的const 當你只在定義該const 常量的檔案中使用該常量時,c 不給你的const常量分配空間 這也是c 的一種優化措施,沒有必要浪費記憶體空間來儲存乙個常量,此時const int c 0 相當於 define c 0 當在當前檔案之外使用時,c 會給你的const分配空間 它是迫不得...

c c 中const的用法

類的成員函式後面加 const,表明這個函式不會對這個類物件的資料成員 準確地說是非靜態資料成員 作任何改變。在設計類的時候,乙個原則就是對於不改變資料成員的成員函式都要在後面加 const,而對於改變資料成員的成員函式不能加 const。所以 const 關鍵字對成員函式的行為作了更加明確的限定 ...

C C 中的const和const指標的基本用法

c c 中使用const關鍵字來修飾常量,所有常型別的變數的值都是不可更改的,並且在定義的時候就必須被初始化 const int a 錯誤,必須初始化 const int a 100 a 200 錯誤,不能更改常量的值 const int a 100和int const a 100這兩種寫法是一樣的...