再探C++Primer (2) 基本內置類型、變量

###C++基本內置類型#函數

C++基本內置類型有算數類型和空類型,其中算數類型包括了整數型和浮點型,字符、整數型、布爾值屬於整數型,浮點數屬於浮點型。空類型不對應具體的值而只對應於一塊內存。code

算數類型:內存

類型			含義		  最小尺寸
bool		布爾類型		未定義
char		字符			  8位
wchar_t		寬字符			16位
char16_t	Unicode字符	 16位
char32_t	Unicode字符	 32位
short		短整形		    16位
int			整型			 16位
long		長整形		    32位
long long	長整形		    64位
float		單精度浮點數	  6位有效數字
double		雙精度浮點數	  10位有效數字
long double	擴展精度浮點數	 10位有效數字

其中最小尺寸是指C++標準規定的尺寸的最小值,同時容許編譯器賦予它更大的尺寸。utf-8

除去布爾型和擴展型,其它的整型能夠分爲帶符號和無符號的,其中無符號的在類型名前加unsigned, 字符型分爲char、signed char、unsigned char三種,char會表現爲signed char或者是unsigned char中的一種,由編譯器決定。unicode

###字面值常量#字符串

以0開頭的表示8進制數,以0x開頭的爲十六進制數,例如024,0xb2.編譯器

能夠指定字面值類型,如L'a'表示寬字符型字面值,u8"hhh"表示utf-8字符串字面值。編譯

指定字面值的類型:變量

字符和字符串字面值:
前綴			含義				類型
u			unicode16字符		char16_t
U			unicode32字符		char32_t
L			寬字符				wchar_t
u8			UTF-8				char
整型字面值:
後綴			最小匹配類型
u or U		unsigned
l or L		long
ll or LL	long long
浮點型字面值:
後綴			最小匹配類型
f或F			float
l或L			long double

###變量#擴展

變量初始化,能夠用=、()、{}、={}進行初始化,其中花括號的初始化被稱爲列表初始化。

默認初始化,變量沒有指定初值,則執行默認初始化。內置類型的初始化值由它的位置決定,定義於全局的內置類型將賦0,定義於函數體內部的變量將不被初始化,其值是未定義的。建議初始化每一個內置類型的變量。

變量聲明和定義的關係

聲明使得名字爲程序所知,定義負責建立與名字關聯的實體,也就是說定義會申請內存空間並可能爲變量賦予初值。若是想聲明一個變量而非定義它,就在它名字前添加extern關鍵字。

extern int i;	//聲明而非定義
int j;			//聲明並定義
extern double pi = 3.1415; 	//定義

給extern關鍵字標記的變量賦初值將抵消extern的做用而定義這個變量。

相關文章
相關標籤/搜索