這篇文章將為大家詳細(xì)講解有關(guān)Linux中const怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
站在用戶的角度思考問題,與客戶深入溝通,找到嘉祥網(wǎng)站設(shè)計與嘉祥網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名申請、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋嘉祥地區(qū)。
一、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位于星號的左側(cè),則const就是用來修飾指針?biāo)赶虻淖兞浚粗羔樦赶驗槌A?如果const位于星號的右側(cè),const就是修飾指針本身,即指針本身是常量。因此,[1]和[2]的情況相同,都是指針?biāo)赶虻膬?nèi)容為常量(const放在變量聲明符的位置無關(guān)),這種情況下不允許對內(nèi)容進(jìn)行更改操作,如不能*a = 3 ;[3]為指針本身是常量,而指針?biāo)赶虻膬?nèi)容不是常量,這種情況下不能對指針本身進(jìn)行更改操作,如a++是錯誤的;[4]為指針本身和指向的內(nèi)容均為常量。
另外const 的一些強大的功能在于它在函數(shù)聲明中的應(yīng)用。在一個函數(shù)聲明中,const 可以修飾函數(shù)的返回值,或某個參數(shù);對于成員函數(shù),還可以修飾是整個函數(shù)。有如下幾種情況,以下會逐漸的說明用法:
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)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
分享名稱:Linux中const怎么用
標(biāo)題鏈接:http://jinyejixie.com/article26/jojcjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、用戶體驗、自適應(yīng)網(wǎng)站、手機網(wǎng)站建設(shè)、網(wǎng)站排名、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)