您好,登錄后才能下訂單哦!
1、const基礎(chǔ)知識(shí)(用法、含義、好處)
⑴初級(jí)理解:const是定義常量==》意味著只讀
#include <iostream> struct Teacher { char name[64]; int age; } int operatorTeacher01(const Teacher *pT) { pT->age = 10;//這是錯(cuò)誤的,原因:指針?biāo)赶虻膬?nèi)存空間不可以被修改 return 0; } int operatorTeacher02(Teacher * const pT) { pT->age = 10;//這是正確的 pT = NULL;//這是錯(cuò)誤的,原因:指針變量本身不能被修改 return 0; } int main() { const int a; int const a;// 第一個(gè)第二個(gè)意思一樣 代表一個(gè)×××數(shù) const int *c;//c 是一個(gè)指向?!痢痢翑?shù)的指針(所指向的內(nèi)存不能被修改,但是本身可以修改) int * const d;// d 是常指針(指針變量不能被修改,但是它所指向的內(nèi)存空間可以被修改) const int * const e;//一個(gè)指向?!痢痢恋某V羔槪ㄖ羔樅退赶虻膬?nèi)存空間均不能被修改) return 0; }
⑵好處:
合理的利用const:①指針做函數(shù)參數(shù),可以有效的提高代碼的可讀性,減少bug
②清楚的分清參數(shù)的輸入和輸出特性
2.const的符號(hào)表機(jī)制
C++編譯器對(duì)const常量的處理:
當(dāng)碰見(jiàn)常量聲明時(shí),在符號(hào)表中放入常量;
編譯過(guò)程中若發(fā)現(xiàn)使用常量則直接以符號(hào)表中的值替換;
編譯過(guò)程中若發(fā)現(xiàn)對(duì)const使用了extern或者&操作符,則給對(duì)應(yīng)的常量分配存儲(chǔ)空間(兼容C)
結(jié)論:C語(yǔ)言中的const常量:
C語(yǔ)言中的const變量是只讀變量,有自己的存儲(chǔ)空間
C++中的const常量:
可能分配空間,也可能不分配空間
分配內(nèi)存空間的情況:
當(dāng)const常量為全局,并且需要在其他文件中使用
當(dāng)使用&操作符取const常量的地址
3、const與#define的不同之處
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。