C++進化后的const變量實例探究
C語言中的const
const修飾的變量的是只讀的,本質(zhì)還是變量
const修飾的局部變量還在棧上分配空間
const修飾的全局變量在只讀的存儲區(qū)分配空間
const只在編譯器有用,在運行期無用
const修飾的變量不是真的常量,只是該變量不能出現(xiàn)在賦值符號的左邊
const不能定義真正意義上的常量!
C語言真正意義上的常量只有枚舉
#include <stdio.h>
int main()
{
const int c = 0;
int* p = (int*)&c;
printf("Begin...\n");
*p = 5;
printf("c = %d\n", c);
printf("End...\n");
return 0;
}C語言中的const變量
-C語言中const變量是只讀變量,會分配存儲空間
C++中的const變量
-可能分配存儲空間
當(dāng)const常亮為全局,并且需要在其他文件中使用
當(dāng)使用&操作符對const常量取地址
C++中的const常量類似于宏定義
-const int c=5; ≈#define c 5
C++中的const常量在與宏定義不同
const常量由編譯器處理
編譯器對const常量進行類型檢查和作用域檢查
宏定義由預(yù)處理器處理,單純的文本替換
#define a 3
const int b = 4;
}
void g()
{
printf("a = %d\n", a);
//printf("b = %d\n", b);
}
int main()
{
const int A = 1;
const int B = 2;
int array[A + B] = {0};
int i = 0;
for(i=0; i<(A + B); i++)
{
printf("array[%d] = %d\n", i, array[i]);
}
f();
g();
return 0;
}小結(jié)
與C語言不同,C++中的const不是只讀變量
C++中的const是一個真正意義上的常量
C++編譯器可能會為const常量分配空間
C++完全兼容C語言中const常量的語法特性
以上就是C++進化后的const變量實例探究的詳細內(nèi)容,更多關(guān)于C++ const變量進化的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C語言數(shù)據(jù)結(jié)構(gòu)之雙鏈表&循環(huán)鏈表&靜態(tài)鏈表詳解
這篇文章主要為大家詳細介紹了C語言數(shù)據(jù)結(jié)構(gòu)中雙鏈表&循環(huán)鏈表&靜態(tài)鏈表的原理與使用,文中的示例代碼講解詳細,感興趣的可以了解一下2022-09-09
C++實現(xiàn)圖的鄰接表存儲和廣度優(yōu)先遍歷實例分析
這篇文章主要介紹了C++實現(xiàn)圖的鄰接表存儲和廣度優(yōu)先遍歷,實例分析了C++實現(xiàn)圖的存儲與遍歷技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04
c++ 獲取數(shù)字字符串的子串?dāng)?shù)值性能示例分析
這篇文章主要為大家介紹了c++ 獲取數(shù)字字符串的子串?dāng)?shù)值示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11

