域名過期的網(wǎng)站怎么看seo點擊排名軟件哪里好
一、核心作用
用于定義“常量”,限制程序?qū)ψ兞康男薷?#xff0c;提升代碼安全性和可讀性。其核心作用包括:
- 避免誤修改:明確標識不可變數(shù)據(jù)。
- 編譯器優(yōu)化:常量可被放入符號表,減少內(nèi)存訪問,優(yōu)化執(zhí)行效率。
- 類型檢查:強制類型匹配(優(yōu)于宏)。
二、應(yīng)用場景及詳解
1.?修飾變量
基本類型:值不可變
const int MAX_SIZE = 100; // 必須初始化,后續(xù)修改觸發(fā)編譯錯誤
2.指針與引用:
- 常量指針(指向不可變)
const int* ptr
int const* ptr //或
- 指針常量(指針不可變)
int* const ptr
- 雙重常量(指針和值均不可變)
const int* const ptr
3.?修飾函數(shù)參數(shù)
- 輸入?yún)?shù)保護:防止函數(shù)內(nèi)意外修改。
void print(const string& s) { // s[0] = 'a'; // 錯誤!s為常量引用
}
4.?修飾函數(shù)返回值
- 返回常量值:禁止對返回值賦值
const int getValue() { return 42; } // getValue() = 10; // 編譯錯誤
5.?類中的const
- 常量成員函數(shù)
? ? ?聲明:void func() const;
? ? ?作用:承諾不修改對象狀態(tài)
- 常量對象:只能調(diào)用常量成員函數(shù)。
const MyClass obj;
obj.getX(); // 合法
// obj.modifyX(); // 非法
三.
1. C與C++中const的區(qū)別?
C中const默認為外部鏈接,可通過指針間接修改(未定義行為);
C++中const默認為內(nèi)部鏈接,且嚴格禁止修改(符號表優(yōu)化)
2. const與#define的優(yōu)劣?
const:類型安全、作用域控制、支持調(diào)試;
#define:無類型、易出錯(可3能導(dǎo)致表達式錯誤)。
3. 常量成員函數(shù)能否調(diào)用非常量函數(shù)?
不能!違反“不修改對象”的原則,需保證調(diào)用鏈均為安全。