C语言符号篇
Nevermore   Lang
# 注释
注释的处理是在预处理阶段用空格进行替代。
注释不支持嵌套,
*/总会与其最近的/*进行匹配。
# \
- 一行代码太长,可以使用 
\进行续行。符号后不可以带任何符号(如空格)。 - 进行字符转义。
 
# 字符‘ ’
- C99规定,‘1’称为整型字符常量,看成是int。
 

char a = '1' ;本质是发生了截断。
char a = ‘1234’;正好是4字节,不会报错。
# 位运算
|: 按位或&:按位与^:按位异或~:按位取反<<(>>) : 左移一位(右移一位)——直接操作数据的补码。- 左移:最高位被丢弃,最低位补零
 - 右移:
- 有符号数:最低位丢弃,最高位补符号位的值(负数补1,正数补0)——算术右移(符号位参与,不一定是除2)
 - 无符号数:最低位丢弃,最高位补0.——逻辑右移(除2)
 
 
数据在CPU中运算,会将数据加载到寄存器中进行操作,寄存器的位数为32位或64位。会进行整型提升。

# /和%
C语言有如下几种取整方式
- 浮点数取整数向0方向取整。——trunc(),这是类型赋值默认的取整方式
 - 向数轴负方向取整——floor()
 - 向数轴正方向取整——ceil()
 - 四舍五入取整——round()
 
%的结果是取决于/的,而/的结果取决于取整的方式。C语言使用的是向0取整,因此-10/3=-3 —— -10 = -3 * 3 + (-1)
取余:/的结果向0取整;
取模:/的结果向负轴取整。
正数(符号相同的两个数)的/取整方向是一致的,运算结果都是一样的,因此正数的取余和取模是等价的。
