C陷阱与缺陷 学习笔记(一)

一、“贪心法”—每个符号应该包含尽可能多的字符

     编译器从左到右一个个字符读入,如果这个字符能够组成一个符号,那么再读入下一个字符,判断已经读入的两个字符组成的字符串是否可能再组成一个符号。以此类推,知道读入的字符串不能再组成一个有意义的符号。

     应该注意的是除了字符串与字符串常量,符号中间不能有空白。例如:

if(a= =b)

这就是错误的,但是利用这个规则可以避免一些错误。

y=x/*p

这句话的本意应该是x除以p指向的值,再将商赋给y,通过中间加个空格可以修正这个错误。

y=x/ *p

当然,我认为更好的书写方式是:

y=x/(*p)

类似的还有

a=-1;
a= -1;

第一行代码意义为a=a-1;

第二行代码意义为a的值为-1;

二、引号的含义

     单引号括起的字符代表整数,双引号括起的字符代表一个指针。

printf(‘yes’)

上述是错误的,但编译器检测不到。

三、优先级问题

     任何逻辑运算符的优先级低于任何关系运算符。

     移位运算符的优先级比算术运算符要低,但是比关系运算符要高。

    

转载于:https://www.cnblogs.com/wxz1995/p/9508109.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值