第2章 变量和基本类型
练习2.1
- 它们各自所占的位数不同。C++语言规定一个int至少和一个short一样大,一个long至少和一个int一样大,一个long long至少和一个long一样大。
- 带符号类型可以表示正数、负数或0,无符号类型则仅能表示大于等于0的值。
- float和double所占的位数不同,float是单精度,而double是双精度。
练习2.2
都使用double。doulbe比float精度更高,而两者计算代价相差无几。
练习2.3
32
4294967264
32
-32
0
0
练习2.4
#include <iostream>
int main()
{
unsigned u = 10, u2 = 42;
std::cout << u2 - u << std::endl;
std::cout << u - u2 << std::endl;
int i = 10, i2 = 42;
std::cout << i2 - i << std::endl;
std::cout << i - i2 << std::endl;
std::cout << i - u << std::endl;
std::cout << u - i << std::endl;
return 0;
}
练习2.5
- (a)
char
wchar_t
字符串
宽字符串
- (b)
int
unsigned int
long
unsigned long
int
int
- ©
double
float
long double
- (d)
int
unsigned int
double
double
练习2.6
有区别。第一行是十进制整型,第二行是八进制整型,但第二行的month
无效,因为八进制没有9。
练习2.7
- (a) Who goes with Fergus?(换行)
字符串
- (b) 31.4
long double
- © 无效,因为后缀 f 只能用于浮点字面量,而 1024 是整型。
- (d) 3.14
long double
练习2.8
#include <iostream>
int main()
{
std::cout << "2\115\n";
std::cout << "2\t\115\n";
return 0;
}