C++ 基础
sizeof
1 | int n = 75; // int n{75}; int n(75); int n = {75}; |
sizeof()
查看类型或变量的长度,单位为
字节
integral types
- short 至少 16位
- int 至少与 short 一样长
- long 至少 32 位且至少与 int 一样长
- long long 至少 64 位,且至少与 long 一样长
头文件 climits
中定义了符号常量来表示类型的限制
1 | int n = 75; |
如果知道变量不可能为负数,尽量使用无符号类型
character
也是一种整型
1 | char ch = 'Q'; |
boolean
cout
通常在显示 bool 值之前将它们转换为 int,但
cout.setf(ios::boolalpha)
函数调用设置了一个标记,该标记命令 cout
显示
true
和 false
,而不是 1 和 0
floating-point types
- float 至少 32 位
- double 至少 48 位,且不少于 float
- long double 至少和 double 一样多
通常 float 32 位,double 为 64 位,long double 为 80、96 或 128 位,这 3 种类型的指数范围至少是 -37 到 37
头文件 cfloat
,float.h
中定义了系统限制
cout.setf(ios_base::fixed, ios_base::floatfield);
中的
ios_base::fixed
能防止程序把较大的值切换为指数表示法,ios_base::floatfield
使程序显示到小数点后 6 位
使用 double 类型来进行浮点数运算,因为 float 类型精度低
变量初始化
1 | int units_sold = 0; |
列表初始化是 C++11 新特性,通常用于给复合数据类型提供值列表,该初始化方式不允许缩窄(narrowing)
1 | const int code = 66; |
输入
直接输入字符串会将空格、制表符和回车符判定为分隔符,那么使用行输入
cin.getline()
可以解决该问题
1 | cin.getline(name, 20); // 最多读取 19 个字符 |
cin.get()
也是行输入,但是并不读取换行符(cin
也不读取换行符),会将其保留在缓冲区,但是使用不带任何参数的
cin.get()
可以读取下一个字符,即便是换行符
1 | cin.get(name, ArSize); |
cin
也不读取换行符
1 | int year; |
getline()
读取并赋值给 string 类
1 | string qwt; |
cin.getline()
和 cin.get()
最好使用
cin.get()
输入错误类型时 cin
会返回 0
1 | if(!cin) |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.