《c语言深度剖析》读书笔记(二)符号

本文是自己读书的时候一些关于该书的重点及感悟

目录

1、注释符号

2、接续符和转义符

3、单引号和双引号

4、逻辑运算符

5、位运算符

6、花括号

7、++ --操作符

8、c语言除法

9、符号优先级


1、注释符号

(1)C 语言里可以有两种注释方式:/* */ 和//,编译器在编译程序时的确会将注释剔除,但不是简单的剔除,而是用空格代替原来的注释。

(2)/*…*/这种形式的注释不能嵌套,如:/*这是/*非法的*/*/ 因为/*总是与离它最近的*/匹配。

(3)只要斜杠(/)和星号(*)之间没有空格,都会被当作注释的开始。这一点一定要注意,要把*号作为指针使用时一定要在/后面加空格。

(4)要边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要及时删除。

(5)对于全局数据(全局变量、常量定义等)必须要加注释。

(6)注释代码段时应注重“为何做(why)”,而不是“怎么做(how)”。

2、接续符和转义符

(1)反斜杠作为接续符时,之后不能有空格,反斜杠的下一行之前也不能有空格。(实测后发现反斜杠的下一行之前后空格,也可以编译通过,比较奇怪,不知道是不是和编译软件有关系)

3、单引号和双引号

(1)字符在内存里是以 ASCAII 码存储的,所以字符常量可以与整形常量或变量进行运算。

4、逻辑运算符

(1)逻辑运算符||两边的条件只要有一个为真,其结果就为真;只要有一个结果为假,其结果就为假。if((++i>0)||(++j>0))语句中,先计算(++i>0),发现其结果为真,后面的(++j>0)便不再计算。

(这块书中的书写有误,只要有一个结果为假,其结果不一定为假,因为后一个条件可能为真,后一个条件为真的话,整个判断结果为真)

5、位运算符

(1)其中按位异或操作可以实现不用第三个临时变量交换两个变量的值:a ^= b; b ^= a;a ^= b;但并不推荐这么做,因为这样的代码读起来很费劲。

(2)对于有符号数,在右移时,符号位将随同移动。当为正数时, 最高位补 0;而为负数时,符号位为 1,最高位是补 0 或是补 1 取决于编译系统的规定。Turbo C 和很多系统规定为补 1。

(3)左移和右移的位数不能大于数据长度,不能小于0,不然数据会发生溢出

6、花括号

(1)简单来说花括号的作用就是打包。用花括号是为了把一些语句或代码打个包包起来,使之形成一个整体,并与外界绝缘。

7、++ --操作符

(1)C 语言有这样一个规则:每一个符号应该包含尽可能多的字符。也就是说,编译器将程

序分解成符号的方法是,从左到右一个一个字符地读入,如果该字符可能组成一个符号,

那么再读入下一个字符,判断已经读入的两个字符组成的字符串是否可能是一个符号的组

成部分;

8、c语言除法

(1)C 语言或者其他语言在实现整数除法截断运算时,要求余数与被除数的正负号相同。

9、符号优先级

(1).的优先级高于* ,->操作符用于消除这个问题

(2)[]高于*

(3)函数()高于*

(4)== 和!=高于位操作

(5)== 和!=高于赋值符

(6)算术运算符高于位移运算符

(7)逗号运算符在所有运算符中优先级最低

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值