学习笔记:c语言中词法陷阱

单个字符是独立的 有着自己特定的意义但是如果组合到一起就会有不同的用法 从而也产生了很多误区
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的意思但是计算机会以八进制的方式来处理 所以不建议这样写

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值