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變量
-可能分配存儲空間
當const常亮為全局,并且需要在其他文件中使用
當使用&操作符對const常量取地址
C++中的const常量類似于宏定義
-const int c=5; ≈#define c 5
C++中的const常量在與宏定義不同
const常量由編譯器處理
編譯器對const常量進行類型檢查和作用域檢查
宏定義由預處理器處理,單純的文本替換
#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++讀入"N,X,Y,Z"格式文本文件到Eigen3 Matrix
這篇文章主要介紹了C++讀入"N,X,Y,Z"格式文本文件到Eigen3 Matrix,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04
Cocos2d-x保存用戶游戲數(shù)據(jù)CCUserDefault類使用實例
這篇文章主要介紹了Cocos2d-x保存用戶游戲數(shù)據(jù)CCUserDefault類使用實例,需要的朋友可以參考下2014-09-09
C++中decltype關(guān)鍵字的實現(xiàn)
decltype是C++11引入的關(guān)鍵字,用于在編譯時精確推導表達式或變量的類型而不執(zhí)行表達式,本文就來詳細的介紹一下C++ decltype關(guān)鍵字的使用,感興趣的可以了解一下2026-02-02
C語言運用回調(diào)函數(shù)實現(xiàn)計算器
這篇文章主要為大家詳細介紹了C語言運用回調(diào)函數(shù)實現(xiàn)計算器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10
vs2019 MFC實現(xiàn)office界面的畫圖小項目
本文主要介紹了vs2019 MFC實現(xiàn)office界面的畫圖小項目,對大家入門有一定的幫助,需要的朋友們下面隨著小編來一起學習學習吧2021-06-06

