看C陷阱与缺陷的一点收获

1. 贪心法:每一个符号应包含尽可能多的字符。所以a+++b就不难理解了。
2. (*(void(*)())0)()的理解typedef void (*funcptr)(); (*(funcptr)0)()
3. 单目运算符---算术运算符---移位运算符---关系运算符---逻辑运算符
4. 只有&& ||?: ,保证最左到右的求值顺序。而y[i]=x[i++]不能保证先取y+i的地址
5. 两个有符号整数相加,溢出 a+b < 0,不正确,可以将a b都转化成无符号数进行判断。
6. 如果一个函数在声明或者定义前被调用,默认其返回值为整型
7. 如果一个函数没有float short char 类型的参数,在函数声明中完全可以省略参数类型的说明,函数定义中则需要有。
8. 一个输入操作不能紧跟一个输出操作(对同一文件),反之亦然。如需要,在中间添加fseek函数。 Fseek(fp,0,pos),虽然什么都没做,但是保证正常执行。
9. setbuf(stdout,buff)将stdout先写入buff,等写满或者调用fflush即可,注意:缓冲区释放
10. #define error() cout<<__FILE__<<endl<<__LINE__<<endl;
11. 无符号右移,高位用0补上;有符号,不确定。移位的范围为0~位数-1;用移位替代除法
12. n=-n 注意,如果n为负数,则有可能出现问题。-2^N ~ 2^N -1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值