#include
#include
int main() {
using namespace std;
int n_int = INT_MAX;
short n_short = SHRT_MAX;
long n_long = LONG_MAX;
long long n_llong = LLONG_MAX;
cout << "int is " << sizeof n_int << " bytes" << endl;
cout << "short is " << sizeof n_short << " bytes" << endl;
cout << "long is " << sizeof n_long << " bytes" << endl;
cout << "longlong is " << sizeof n_llong << " bytes" << endl;
cout << endl;
cout << "Maximum values: " << endl;
cout << "int is " << n_int << " bytes" << endl;
cout << "short is " << n_short << " bytes" << endl;
cout << "long is " << n_long << " bytes" << endl;
cout << "longlong is " << n_llong << " bytes" << endl;
cout << "Minimum int value: " << INT_MIN << endl;
cout << "bit per byte = " << CHAR_BIT << endl;
return 0;
}
int rose{7}
int rose = {7}
int rose = {}
int rose{}
这是一种通用的初始化方法,大括号使得变量的赋值可以是不同的类型。
扩大了数据可存储的最大值(翻倍),且为非负数。
for example: short 存储范围-32768~32767,unsigned short 存储范围为0~65535
#include
using namespace std;
int main() {
int chest = 42;
int waist = 42;
int inseam = 42;
cout << "chest = " << chest << " decimal for 42" << endl; //cout输出默认为十进制
cout << hex;//十六进制
cout << "waist = " << waist << " hexadecimal for 42" << endl;
cout << oct;
cout << "inseam = " << inseam << " octal for 42" << endl;
}
浮点数:float,double,long double的精度都比整型低,且运算速度比整型慢。
一般用double双精度,而不是float,因为float能显示的位数实在有限。
转换 | 问题 |
---|---|
大浮点型->小浮点型 | 精度降低 |
浮点型->整型 | 截取整数部分,舍弃小数部分,可能存储溢出 |
大整型–>小整型 | 溢出取值范围,通常只复制右边的字节 |
复杂的类型转换:使用{},在初始化时进行转换。
运算 | 转换规则 |
---|---|
不同类型混合 | 较小的类型转换为较大的类型 |
整型运算 | 进行运算时会自动转换为int型进行计算之后再转换为原类型。 |
整型提升 | 小->大 |
类型级别:由高到低:有符号整型long long, long, int, short, signed char;无符号整型与有符号整型相同。类型char,signed char,unsigned char的级别相同。bool类型的级别最低。
上述转换为计算机的隐式转换,强制转换为显式。表达式有以下两种:
(typename) value //C语言用法
typename (value) //C++用法
示例代码
int main() {
int auks, bats, coots;
auks = 19.99 + 11.99;
bats = (int)19.99 + (int)11.99;
coots = int(19.99) + int(11.99);
cout << "auks = " << auks << ",bats = " << bats;
cout << ",coots = " << coots << endl;
char ch = 'Z';
cout << "ch的int型为:" << int(ch) << endl;
cout << static_cast(ch) << endl;//static_cast是C++中四种强制类型转换运算符之一,可以进行数值类型转换
return 0;
}
auto是C++中重新进行了定义,可以用于根据初始值类型推断变量的类型。,但是在简单初始化中,自动类型推断可能会出错。只有在处理复杂类型时,auto的优势才能显现出来。
能显现出来。