有時候我們希望定義這樣一種變數,它的值不能被改變。具體的應用如下,直接上**:
#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這兩種寫法是一樣的...