字符和字符串字面值
字符串字面值的类型实际上是有常量字符构成的数组;
"abc"代表的是一个char*类型,而不是 string ;
编译器自动在每个字符串末尾添加一个空字符('\0'),因此实际长度比它的内容
多1
通过在字面值添加前缀 或 后缀,可以指定其类型
L'a' — 宽字符型字面值,占两个字节
333L — long型; 333LL — long long; 333U—unsigned;1.2F—float; 1.2L—
long double;
变量
变量提供一个具名的、可供程序操作的存储空间
变量的初始化和赋值
是两个完全不同的操作
初始化不是赋值,初始化的含义是在创建变量时赋予其一个初始值,而赋值的含义
是把对象的当前值擦除(一般该对象已经创建),而以一个新值来代替
用 = 来初始化变量的方式容易让人认为初始化是赋值的一种
实际上可能是拷贝初始化函数的功能;
可以联想一下类的初始化方式存在 string a(b) ,这种虽然没有用 = 赋值,
但是是一种初始化操作
初始化有多种形式
c++ 11 列表初始化:利用 花括号 来初始化变量(可以用于 任何类型 对象的初始
化 )
当用于内置类型的变量时,如果我们使用列表初始化切初始值存在丢失的风
险,则编译器会报错