Linux中const怎么用

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

站在用戶的角度思考問題,與客戶深入溝通,找到嘉祥網(wǎng)站設(shè)計(jì)與嘉祥網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請(qǐ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位于星號(hào)的左側(cè),則const就是用來修飾指針?biāo)赶虻淖兞?,即指針指向?yàn)槌A?如果const位于星號(hào)的右側(cè),const就是修飾指針本身,即指針本身是常量。因此,[1]和[2]的情況相同,都是指針?biāo)赶虻膬?nèi)容為常量(const放在變量聲明符的位置無關(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)把它分享出去讓更多的人看到。

分享名稱:Linux中const怎么用
標(biāo)題鏈接:http://muchs.cn/article26/jojcjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、自適應(yīng)網(wǎng)站手機(jī)網(wǎng)站建設(shè)、網(wǎng)站排名域名注冊(cè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營