再探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的做用而定义这个变量。

相关文章
相关标签/搜索