C++進(jìn)化后的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常量進(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變量實例探究的詳細(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++實現(xiàn)圖的鄰接表存儲和廣度優(yōu)先遍歷實例分析
這篇文章主要介紹了C++實現(xiàn)圖的鄰接表存儲和廣度優(yōu)先遍歷,實例分析了C++實現(xiàn)圖的存儲與遍歷技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04c++ 獲取數(shù)字字符串的子串?dāng)?shù)值性能示例分析
這篇文章主要為大家介紹了c++ 獲取數(shù)字字符串的子串?dāng)?shù)值示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11