溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux中const怎么用

發(fā)布時(shí)間:2021-10-28 14:35:39 來源:億速云 閱讀:223 作者:小新 欄目:系統(tǒng)運(yùn)維

這篇文章將為大家詳細(xì)講解有關(guān)Linux中const怎么用,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

一、const基礎(chǔ)

如果const關(guān)鍵字不涉及到指針,我們很好理解,下面是涉及到指針的情況:

int b = 500;  const int* a = &b; [1]  int const *a = &b; [2]  int* const a = &b; [3]  const int* const a = &b; [4]

如果你能區(qū)分出上述四種情況,那么,恭喜你,你已經(jīng)邁出了可喜的一步。不知道,也沒關(guān)系,我們可以參考《Effective  c++》Item21上的做法,如果const位于星號(hào)的左側(cè),則const就是用來修飾指針?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ì)逐漸的說明用法:

A& operator=(const A& a);  void fun0(const A* a );  void fun1( ) const; // fun1( ) 為類成員函數(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只能訪問聲明為const的函數(shù),而不能訪問一般的成員函數(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í),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(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)容。

AI