共计 675 个字符,预计需要花费 2 分钟才能阅读完成。
变量类型
应用 sizeof()
能够看到类型占用存储空间
类型 | 占用 |
---|---|
int | 4B(2B,3B) |
char | 1B |
short | 2B |
long | 4B |
long long | 8B |
float | 4B |
double | 6B |
对于 char 字符类型类型,内存中存储的是其对应的字符编码(如 ’A’ 为 65),当其作为 char 类型被 cout 输入时输入字符变量,为 int 输入时为其对应的字符编码。这也是 cout 智能对象的例子。
C++ 中,字符变量用单引号包裹,字符串用多引号包裹
constant 限定符
通过 constant 限定符指定的常量不能批改。该当在申明时定义,否则该常量值将不确定。
constant int Months = 12;
与 #define 的区别:
- constant 可指定类型,define 不行
- constant 可通过作用域规定将定义限度在特定的函数或文件中
类型转换
以下状况将造成类型转换:
- 将一种算术类型的值赋给类一种算术类型的变量
- 表达式中蕴含不同的类型
- 将参数传递给函数
- 初始化和赋值进行的转换
潜在的问题(精度缺失,数值异样)
若变量的类型无奈示意赋给它的值,将导致没有定义的状况产生(数值异样) - 以 {} 形式初始化时进行的转换(C++11)
这种初始化对类型转换的条件更加严格,列表初始化 不容许缩窄(narrowing),即变量的类型可能无奈示意赋给它的值。
例如 不容许将浮点型转换为整型 。在不同的整型之间转化或将整型转化为浮点型可能被容许,条件是编译器晓得指标变量可能正确地存储赋给它的值。
对于 c4,虽 66 能被 char 存储,但因为 x 为变量,之后能够被扭转,编译器无奈确定其是否能被 char 示意故 invalid。 - 表达式中的转换
正文完