溫馨提示×

溫馨提示×

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

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

C++中const關(guān)鍵字怎么用

發(fā)布時間:2021-08-30 08:59:42 來源:億速云 閱讀:116 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)C++中const關(guān)鍵字怎么用的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

C語言中修飾變量

在C語言中,被const修飾的是一個不能被修改的變量。

C語言中修飾指針變量

#include <stdio.h>
//代碼1
void test1()
{
	int n = 10;
	int m = 20;
	int *p = &n;
	*p = 20;//ok
	p = &m; //ok
}
void test2()
{
	//代碼2
	int n = 10;
	int m = 20;
	const int* p = &n;
	*p = 20;//err
	p = &m; //ok
}
void test3()
{
	int n = 10;
	int m = 20;
	int *const p = &n;
	*p = 20; //ok
	p = &m; //err
}
int main()
{
	//測試無cosnt的
	test1();
	//測試const放在*的左邊
	test2();
	//測試const放在*的右邊
	test3();
	return 0;
}

結(jié)論:

1.const如果放在*的左邊,修飾的是指針指向的內(nèi)容,保證指針指向的內(nèi)容不能通過指針來改
變。但是指針變量本身的內(nèi)容可變。

2.const如果放在*的右邊,修飾的是指針變量本身,保證了指針變量的內(nèi)容不能修改,但是指
針指向的內(nèi)容,可以通過指針改變。

C語言中修飾函數(shù)的參數(shù)

C語言中修飾函數(shù)的返回值

C++中修飾變量

在C++中,被const修飾的已經(jīng)是一個常量,而且具有宏替換的屬性。

void TestConst()
{
    const int a = 10; 
    int*pa =(int*)&a;
    *pa = 100;
    cout<<a<<endl;//10
    //但是a的值已經(jīng)是100原因:在編譯階段,編譯器已經(jīng)將a用10替換了 
    cout <<*pa <<endl; // 100
}

const修飾的常量的替換發(fā)生在編譯階段,會參與參數(shù)類型檢測,代碼的安全性更高。
建議:在C++中使用const修飾的常量代替宏常量。

C++中修飾函數(shù)的參數(shù)

結(jié)論:修飾的是形參,表明在函數(shù)中不能對形參進(jìn)行修改。

C++中修飾函數(shù)的返回值

結(jié)論:表明返回值不能修改,即在外部接收返回值時,只能以const類型的指針接受。

C++中修飾類的成員函數(shù)

結(jié)論:本質(zhì)是在修飾成員函數(shù)的this指針,即this指針指向?qū)ο笾械膬?nèi)容就不能被修改。

C++中修飾類的成員變量

結(jié)論:該成員變量不能修改,而且必須要在構(gòu)造函數(shù)初始化列表的位置訪問。

C++中const關(guān)鍵字怎么用

感謝各位的閱讀!關(guān)于“C++中const關(guān)鍵字怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

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

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI