跳转至

其他

占几个字节,占多少位

在常见的竞赛环境中int 通常是 4 字节short 通常是 2 字节long long 通常是 8 字节
char 的大小按定义是 1 字节一个字节至少 8 常见环境中为 8 
bool 的大小由实现决定常见环境中是 1 字节

由于历史原因C++ 中布尔类型和字符类型会被视作特殊的整型

整数类型一般按位宽有 5 个梯度char short int long long long
C++ 标准只保证 `sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)` 以及各类型的最小范围
`long`  Windows 64 位环境中通常是 32  macOS/Linux 64 位环境中通常是 64 

字符类型charsigned charunsigned char
底层存储的是字符编码值常见英文字符通常使用 ASCII 对应的值
一般来说 signed charunsigned char 不应用来存储字符绝大多数情况下这两种类型均被视作整数类型

float单精度浮点数精度位数69
double双精度浮点数精度位数1517
注意写代码时一般使用double

运算符优先级

简要记忆,由高到低,分别是

  • 乘除模运算 *, /, %
  • 加减 +, -
  • 左移 右移 <<, >>
  • 比较大小 <, >, ==, !=
  • 按位与 &
  • 按位异或 ^
  • 按位或 |
  • 逻辑与 &&
  • 逻辑或 ||

写代码时,建议加括号保证运算顺序的正确性。

unsigned 和 unsigned int 有什么区别

疑问,源于CSP-J 2019年初赛,这道试题的第8行代码

unsigned a[maxn];

这是什么东西,不是unsigned int, unsigned char, unsigned short吗?

官方写错了,不能够啊。

肯定是自己无知了。

img

im g

原来,unsigned 自己独立使用的时候,就是unsigned int。

破案。

参考