C++進(jìn)化后的const變量實(shí)例探究
C語言中的const
const修飾的變量的是只讀的,本質(zhì)還是變量
const修飾的局部變量還在棧上分配空間
const修飾的全局變量在只讀的存儲區(qū)分配空間
const只在編譯器有用,在運(yùn)行期無用
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常量進(jìn)行類型檢查和作用域檢查
宏定義由預(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++進(jìn)化后的const變量實(shí)例探究的詳細(xì)內(nèi)容,更多關(guān)于C++ const變量進(jìn)化的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C語言數(shù)據(jù)結(jié)構(gòu)之雙鏈表&循環(huán)鏈表&靜態(tài)鏈表詳解
這篇文章主要為大家詳細(xì)介紹了C語言數(shù)據(jù)結(jié)構(gòu)中雙鏈表&循環(huán)鏈表&靜態(tài)鏈表的原理與使用,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-09-09C++實(shí)現(xiàn)LeetCode(51.N皇后問題)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(51.N皇后問題),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07C++實(shí)現(xiàn)圖的鄰接表存儲和廣度優(yōu)先遍歷實(shí)例分析
這篇文章主要介紹了C++實(shí)現(xiàn)圖的鄰接表存儲和廣度優(yōu)先遍歷,實(shí)例分析了C++實(shí)現(xiàn)圖的存儲與遍歷技巧,非常具有實(shí)用價值,需要的朋友可以參考下2015-04-04C++實(shí)現(xiàn)設(shè)計(jì)模式之裝飾者模式詳解
這篇文章主要介紹了C++設(shè)計(jì)模式之裝飾模式,裝飾模式能夠?qū)崿F(xiàn)動態(tài)的為對象添加功能,是從一個對象外部來給對象添加功能,需要的朋友可以參考下2021-09-09c++ 獲取數(shù)字字符串的子串?dāng)?shù)值性能示例分析
這篇文章主要為大家介紹了c++ 獲取數(shù)字字符串的子串?dāng)?shù)值示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11