日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ 中 const和define的区别

發布時間:2025/4/5 c/c++ 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ 中 const和define的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

來源網址:http://wujiangping.blog.163.com/blog/static/195182011201255115125205/

請區別用#define命令定義的符號常量和用const定義的常變量。符號常量只是用一個符號代替一個字符串,在預編譯時把所有符號常量替換所指定的字符串,它沒有類型,在內存中并不存在以符號常量命名的存儲單元。而常變量具有變量的特征,它具有類型,在內存中存在著以它命名的存儲單元,可以用sizeof運算符測出其長度。與一般變量惟一的不同是指定變量的值不能改變。用#define命令定義符號常量是C語言所采用的方法,C++把它保留下來是為了和C兼容。C++的程序員一般喜歡用const定義常變量。雖然二者實現的方法不同,但從使用的角度看,可以認為用了一個標識符代表了一個常量。有些書上把用const定義的常變量也稱為定義常量,但應該了解它和符號常量的區別。

const的用法

??1、C程序中的作用 ? ??定義常量、修飾函數參數、修飾函數返回值 2、C++程序中特有的作用 ? ? ? ??修飾函數的定義體;定義類中某個成員函數為恒態函數即不可改變類中的數據成員; const和define的區別 ??C++中const和define都可以定義常量,但是const有更多優點 (1)const常量有數據類型,而宏常量沒有,編譯器可以對const常量進行類型安全檢查,而后者只進行字符替換沒有安全檢查,可能生意料不到的錯誤(邊際效應)2)有些集成化的調試工具可以對const常量進行調試,但是不能對宏常量進行調試,c++中使用const常量而不是宏常量,即const常量完全取代宏常量。 (3)const與#define最大的差別在于: 前者在堆棧分配了空間,而后者只是把具體數值直接傳遞到目標變量罷了。或者說,const的常量是一個Run-Time的概念,他在程序中確確實實的存在并可以被調用、傳遞。而#define常量則是一個Compile-Time概念,它的生命周期止于編譯期:在實際程序中他只是一個常數、一個命令中的參數,沒有實際的存在。?

const常量存在于程序的數據段,#define常量存在于程序的代碼段。

轉載于:https://www.cnblogs.com/tianxia2s/p/3858285.html

總結

以上是生活随笔為你收集整理的C++ 中 const和define的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。