共計(jì) 1105 個(gè)字符,預(yù)計(jì)需要花費(fèi) 3 分鐘才能閱讀完成。
這篇文章將為大家詳細(xì)講解有關(guān) Linux 中 const 怎么用,丸趣 TV 小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
一、const 基礎(chǔ)
如果 const 關(guān)鍵字不涉及到指針,我們很好理解,下面是涉及到指針的情況:
int b = 500; const int* a = [1] int const *a = [2] int* const a = [3] const int* const a = [4]
如果你能區(qū)分出上述四種情況,那么,恭喜你,你已經(jīng)邁出了可喜的一步。不知道,也沒(méi)關(guān)系,我們可以參考《Effective c++》Item21 上的做法,如果 const 位于星號(hào)的左側(cè),則 const 就是用來(lái)修飾指針?biāo)赶虻淖兞浚粗羔樦赶驗(yàn)槌A? 如果 const 位于星號(hào)的右側(cè),const 就是修飾指針本身,即指針本身是常量。因此,[1]和 [2] 的情況相同,都是指針?biāo)赶虻膬?nèi)容為常量 (const 放在變量聲明符的位置無(wú)關(guān)),這種情況下不允許對(duì)內(nèi)容進(jìn)行更改操作,如不能 *a = 3 ;[3] 為指針本身是常量,而指針?biāo)赶虻膬?nèi)容不是常量,這種情況下不能對(duì)指針本身進(jìn)行更改操作,如 a ++ 是錯(cuò)誤的;[4]為指針本身和指向的內(nèi)容均為常量。
另外 const 的一些強(qiáng)大的功能在于它在函數(shù)聲明中的應(yīng)用。在一個(gè)函數(shù)聲明中,const 可以修飾函數(shù)的返回值,或某個(gè)參數(shù); 對(duì)于成員函數(shù),還可以修飾是整個(gè)函數(shù)。有如下幾種情況,以下會(huì)逐漸的說(shuō)明用法:
A operator=(const A a); void fun0(const A* a ); void fun1( ) const; // fun1( ) 為類(lèi)成員函數(shù) const A fun2( );
二 const 的初始化
先看一下 const 變量初始化的情況
1) 非指針 const 常量初始化的情況:
A b; const A a = b;
2) 指針(引用)const 常量初始化的情況:
A* d = new A(); const A* c = d;
或者:
const A* c = new A();
引用:
A f; const A e = f; // 這樣作 e 只能訪問(wèn)聲明為 const 的函數(shù),而不能訪問(wèn)一般的成員函數(shù);
[思考 1]:以下的這種賦值方法正確嗎?
const A* c=new A(); A* e = c;
[思考 2]:以下的這種賦值方法正確嗎?
A* const c = new A(); A* b = c;
關(guān)于“Linux 中 const 怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。