C++變量類型

變量

變量是程序可操作的存儲區(qū)的名稱。C++中每個(gè)變量都有指定的類型,不同類型的變量有不同的存儲大小和布局。變量存儲于內(nèi)存中,運(yùn)算符可應(yīng)用于變量上。

變量的類型

類型 解釋
bool 存儲true或false
char 一個(gè)字符,通常占一個(gè)字節(jié)。整數(shù)類型。
int 整形,占四字節(jié)。
float 單精度浮點(diǎn)數(shù),四字節(jié),1位符號,8位指數(shù),23位尾數(shù)
double 雙精度浮點(diǎn)數(shù),八字節(jié),1位符號,11位指數(shù),52位尾數(shù)
void 類型缺失
wchar_t 寬字符型

另外可以定義枚舉、指針數(shù)組、引用、數(shù)據(jù)結(jié)構(gòu)、等。

變量的定義和初始化

變量的定義即要求編譯器在此處創(chuàng)建變量的存儲:

typeA var;                          //聲明一個(gè)變量
typeB var1, var2, var3;             //聲明多個(gè)變量

變量可以在定義的時(shí)候被初始化:

int a;                          //聲明時(shí)未初始化
int b = 3;                      //聲明時(shí)初始化為3

定義時(shí)沒有初始化的帶有靜態(tài)存儲持續(xù)時(shí)間的(一般表現(xiàn)為全局變量)變量默認(rèn)初始化為NULL,即所有字節(jié)都是0;

其他所有變量(一般表現(xiàn)為局部變量)的初始值未定義的話為為其開辟的存儲空間的原內(nèi)容(亂碼)。

強(qiáng)烈建議定義變量時(shí)手動初始化以確保安全

在變量創(chuàng)建的時(shí)候指明其類型有助于劃定對應(yīng)的空間,和未來程序以何種方式處理(解讀)此變量的指針。

變量的聲明不同于變量的定義

int a = 0;     //定義并聲明了變量 a
extern int a;  //只是聲明了有一個(gè)變量 a 存在,具體 a 在哪定義的,需要編譯器編譯的時(shí)候去找。

類似于函數(shù)的聲明與函數(shù)的定義之間的區(qū)別。

void fun1();  //函數(shù)聲明

void fun1(){  //函數(shù)定義
    cout<<"fun1"<<endl;
}

類型轉(zhuǎn)化規(guī)則

分為自動轉(zhuǎn)化強(qiáng)制轉(zhuǎn)化

自動轉(zhuǎn)化

  1. 參與運(yùn)算的量的類型不同,則轉(zhuǎn)化為相同后運(yùn)算
  2. 數(shù)據(jù)類型轉(zhuǎn)換力求保證精度:
    • 向字節(jié)數(shù)高的方向靠攏;
    • 向無符號的方向靠攏。
  3. 浮點(diǎn)數(shù)運(yùn)算統(tǒng)一轉(zhuǎn)換為double雙精度再進(jìn)行運(yùn)算。
  4. char與short運(yùn)算時(shí)先轉(zhuǎn)化為int再參與運(yùn)算。
  5. 賦值運(yùn)算保留左值的數(shù)據(jù)類型(可能會丟失精度)。

強(qiáng)制轉(zhuǎn)化

可以手動通過類型轉(zhuǎn)化運(yùn)算來實(shí)現(xiàn):一般形式為(類型說明符)表達(dá)式的形式。

int a = 1;
double b = 2.1;
cout << "a + b = " << a + (int)b << endl;  //輸出為a + b = 3

C++賦值運(yùn)算符的左值(lvalue)和右值(rvalue)

左值 (lvalue, locator value) 表示了一個(gè)占據(jù)內(nèi)存中某個(gè)可識別的位置(也就是一個(gè)地址)的對象,左值可以被操作。

右值(rvalue)表示了一個(gè)非內(nèi)存可識別對象的值,不能被操作。

左值和右值的說法常在錯(cuò)誤信息中出現(xiàn)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 之前我寫過一系列的c/c++ 從匯編上解釋它如何實(shí)現(xiàn)的博文。從匯編層面上看,確實(shí)c/c++的執(zhí)行過程很清晰,甚至有...
    一葉障目閱讀 309評論 0 0
  • 類型 大小 范圍 必須遵守的規(guī)則 常見系統(tǒng)的情況 1.unsigned 不影響變量存儲的大小,僅影響變量取值的范圍...
    Bysion閱讀 701評論 0 0
  • C++ 中的變量定義 變量定義 :告訴編譯器在何處創(chuàng)建變量的存儲,以及如何創(chuàng)建變量的存儲。變量定義指定一個(gè)數(shù)據(jù)類型...
    Cy_Star閱讀 200評論 0 0
  • 2.1 基本內(nèi)置類型 包括 算術(shù)類型 空類型(void) 2.1.1 算術(shù)類型 整型包括了char和bool 浮點(diǎn)...
    兩全丶閱讀 639評論 0 0
  • C++中變量的定義與聲明 變量定義就是告訴編譯器在何處創(chuàng)建變量的存儲,以及如何創(chuàng)建變量的存儲。變量定義指定一個(gè)數(shù)據(jù)...
    teanee閱讀 234評論 0 0

友情鏈接更多精彩內(nèi)容