溫馨提示×

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

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

c語言中const的使用方法

發(fā)布時(shí)間:2020-06-22 16:03:32 來源:億速云 閱讀:503 作者:Leah 欄目:編程語言

這篇文章運(yùn)用簡(jiǎn)單易懂的例子給大家介紹c語言中const的使用方法,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

const用法是:

1. const的普通用法

int const size;
const int size;

這兩條語句都是把size聲明為一個(gè)整數(shù),他的值不能被修改。

可以在聲明的時(shí)候?qū)λM(jìn)行初始化,

int const size =10;

錯(cuò)誤用法:

const int size =10;
char buffer[size];  

錯(cuò)誤在于,size占用某內(nèi)存塊,C編譯器不知道它在編譯的值。并且,C默認(rèn)const是外部連接的,所以寫成const是可以的。

2.const用于指針

(1)

const int *p;
int const *p;         //含義是指向常量的指針,指針的常量值不可以修改

兩者相同,p是一個(gè)指向整形常亮的指針,可以修改指針的值,但不能修改指針?biāo)赶虻闹怠?/p>

int b = 5;
int c = 3;
const int *p=&b;
*p=6;    //錯(cuò)誤,不能通過指針修改所指向的值;
p=&c;    //正確,可以修改指針的值 

(2)

int * const p;   //含義是常量指針,p的值不可以修改

p是一個(gè)指針,指針p是常量,它的值無法修改,但是可以修改p所指向的整型的值。

int b = 5;
int c = 3;
int *const p = &b;
*p = 6;  //正確,可以修改指針?biāo)迪虻闹?
p =&c;   //錯(cuò)誤,不可以修改指針的值 

(3)

const int * const p;

無論是指針本身還是它所指向的值都是常量。

簡(jiǎn)單的判斷的方法:

如果const在  *  的左側(cè),則const用來修飾指針?biāo)赶虻淖兞?,即指針指向位常量?/p>

如果const位于 * 的右側(cè),則const就是修飾指針本身,即指針本身就是常量。

3.const用于函數(shù)的形參

void foo(const int * p)

const用于形參時(shí)說明了形參在函數(shù)內(nèi)部不會(huì)被改變。這種形式通常用于數(shù)組形式的參數(shù)中模擬傳值調(diào)用。這也是const最有用之處,限定函數(shù)的形參,這樣該函數(shù)將不會(huì)修改實(shí)參指針?biāo)赶虻臄?shù)據(jù)。這里需要注意得的是,是函數(shù)不應(yīng)該去修改而不是不能修改。

4.聲明常量的其他方法

C語言中可以用enum類型和#define宏來定義常量

#define MAX_SIZE 10;
int const max_size =10;

此處使用#define比使用const變量更好。

只要允許使用字面值常量的地方都可以使用前者,比如聲明數(shù)組的長(zhǎng)度。

const變量只能用于允許使用變量的地方?!?/p>

關(guān)于c語言中const的使用方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向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