读书笔记,从《C专家编程》说起

1.当你看到有这样的用法的时候的,你可以肯定这是错误的
 malloc(sizeof(strlen(str)));
 这是因为字符串最后有结束标志'/0',应该改为:
 malloc(sizeof(strlen(str)+1));

 

2.switch分支语句的使用
 
 这个程序的输出会是:"01default";
 之所以会这样,就是因为C语言的设计中,并没有默认在没个case结束后加上break;
 这不得不说是一个缺憾。程序应该改为:


3.break语句的作用范围
 break主要用于跳出外层循环或者是用于switch语句
 
 上面这个程序,break执行之后,会跳出while(1)循环,而与if无关。
 而continue则是跳出当前作用范围。


4.无符号整数的适用范围
 一般适用于位域和二进制掩码.
 在其它的操作中,最好使用int型或者强制类型转换,有助于程序移植,以及避免类型提示所带来的潜在问题。


5.让人迷惑的运算符优先级
 原则1:所有的运算符(包括复合运算符)都具有右结合性;
 a = b = c = 2; //相当于c=2,b=2,a=2;
 原则2:具有左结合性的运算符,比如"&"和"|",是从左到右执行的
 建议:乘除高于加减,其余一切加括号!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值