《c陷阱与缺陷》笔记一

1、注意'='与'=='的区别

赋值运算符"="的优先级低于逻辑运算符"||",所以

c=' ' || c =='/t' || c=='/n'

这句是将(' ' || c =='/t' || c=='/n')这个表达式的值赋给了c,因为(' ')不为0,(' '空格的ANSCI值为32)所以c不为零。

if(x=y) 的意思是:if((x=y)!=0)

2、一般的编译器来讲,总是尽可能的多读入字符以判断它的意义。(贪心法)所以

a---b;的意思跟(a--)-b;的意思是一样的。如果a=3;b=1;那么上面式子的结果为2.因为a--是先赋值后减,当执行完上面的语句后,a的值才变成2,而在执行这条语句的时候,a的值还是3,所以结果应当为1.

 

3、y=x/*p;  /*p指向除数*/  跟 y=x/ *p; 或者是 y= x / (*p); 的意义。

y=x/*p;语句中,/*被理解为注释的开头部分,所以这句会直接把x的值赋给y.而后面两句的意思则是把 x 除以p指向的除数得到的结果赋给y。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值