单个字符是独立的 有着自己特定的意义但是如果组合到一起就会有不同的用法 从而也产生了很多误区
1.‘=’和‘==’
if(x=y){} //先将y的值赋给x,再判断是否为0
if(x==y){}//判断x和y是否相等 相等为1 不等为0
2.’&’,’|’和’&&’,’||’
‘&’ 和’|’ 是位运算符
‘&&’和’||’是逻辑运算符
主要想强调逻辑运算符有“短路”的性质
int i = 1;
int j = 2;
if(i==1&&j=3)
// 运行之后 i=1 j=3 因为i==1为真 会继续运行j=3这个赋值语句
if(i==2&&j=3)
/*运行之后 i=2 j=2 因为i==2为假 所以程序短路不会继续执行 j还是原来的2*/
3.”贪心“法则
C语言中有单字符符号也有多字符符号
但是C语言对这个有一个简单的原则:每一个符号应该包含尽可能多的字符 处理这种问题的方法就是运用括号或者空格来区分
y=x/*p /*p p指向除数 */(会以为是赋值语句 y=x 后面以为是注释)
y=x/(*p) /*p p指向除数 */(y对*p取整)
4.八进制和十进制
八进制的数以0开头但我们正常理解045就是45的意思但是计算机会以八进制的方式来处理 所以不建议这样写