C++ const關鍵字分析詳解
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; }
結論:
1.const如果放在*的左邊,修飾的是指針指向的內容,保證指針指向的內容不能通過指針來改
變。但是指針變量本身的內容可變。
2.const如果放在*的右邊,修飾的是指針變量本身,保證了指針變量的內容不能修改,但是指
針指向的內容,可以通過指針改變。
C語言中修飾函數(shù)的參數(shù)
C語言中修飾函數(shù)的返回值
C++中修飾變量
在C++中,被const修飾的已經是一個常量,而且具有宏替換的屬性。
void TestConst() { const int a = 10; int*pa =(int*)&a; *pa = 100; cout<<a<<endl;//10 //但是a的值已經是100原因:在編譯階段,編譯器已經將a用10替換了 cout <<*pa <<endl; // 100 }
const修飾的常量的替換發(fā)生在編譯階段,會參與參數(shù)類型檢測,代碼的安全性更高。
建議:在C++中使用const修飾的常量代替宏常量。
C++中修飾函數(shù)的參數(shù)
結論:修飾的是形參,表明在函數(shù)中不能對形參進行修改。
C++中修飾函數(shù)的返回值
結論:表明返回值不能修改,即在外部接收返回值時,只能以const類型的指針接受。
C++中修飾類的成員函數(shù)
結論:本質是在修飾成員函數(shù)的this指針,即this指針指向對象中的內容就不能被修改。
C++中修飾類的成員變量
結論:該成員變量不能修改,而且必須要在構造函數(shù)初始化列表的位置訪問。
總結
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!
相關文章
C/C++實現(xiàn)通訊錄管理系統(tǒng)(附源碼)
這篇文章主要為大家詳細介紹了如何利用C++實現(xiàn)通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-12-12