高质量嵌入式Linux c编程第三章精简问题

2019-07-12 19:25发布

第三章:运算符,表达式
  1. 列举C语言中的各类运算符
  答:(1).算术运算符:+,-,*,/,%,++,--
  1. .关系运算符:>,<,==,>=,<=,!=
  2. .逻辑运算符:&&,||,!
  3. .位操作运算符:&,|,~,^,<<,>>
  4. .赋值运算符:简单赋值=,符合算术赋值+=,-=,/=,%=复合位运算赋值&=,|=,^=,>>=,<<=
  5. .条件运算符:?:
  6. .指针运算符:取内容(*),取地址(&)
  7. .求字节数运算符:sizeof
  8. .特殊运算符:(),[],->,.
  1. 简要说明运算符的优先级的问题
  答:同一优先级的运算符,运算次序由结合方向所决定。简单记就是:!>算数运算符>关系运算符>&&>||>赋值运算符
  1. 条件运算符的特点,优势及其优先级的问题
  答:条件运算符为?和:,它十一个三目运算符,并且它是一对运算符,不可拆开使用,条件运算符的结合方向是自右至左。     条件运算符的运算优先级低于关系运算符和算数运算符,但高于赋值符。
  1. 条件表达式的形式及注意事项
  答:条件表达式的一般形式:表达式1? 表达式2: 表达式3      注意事项:如果表达式1的值为真,则以表达式2的值作为条件表达式的值,否则以条件表达式3的值为整个条件表达式的值。
  1. i++/i-- 与++i/--i的区分
  答:++/--作为前缀时,是先自加,在做别的运算      而作为后缀时,先做运算,计算单位结束后在自加,计算单位结束的标志有“,”“;”“)”。
  1. 什么是位运算,以及位运算的特点?
  答:数据的位是可以操作的最小数据单位,理论上可以用‘位运算’来完成所有的运算和操作。位操作可以有效地提高程序运行的效率。c语言提供了位运算的功能,可以是c语言能像汇编语言一样,编写系统程序。
  1. 按位与运算及其作用
  答:数目运算符“&”,原理;参与运算的两个数对应的二进制位相与。只有对应的两个二进制位均为1,结果才为1,否则为0.参与运算的数以补码的形式出现。
  1. 按位或运算及其作用
  答:双目运算符“|”,原理:参与运算的两个数字的二进制位相或,只要对应的两个二进制位有一个为1,结果位就为1.参与运算的两个数均以补码的形式出现。
  1. 按位异或运算及其作用
  答:双目运算符“^”,原理是:参与运算的两个数字对应的二进制位相异或,当两对应的二进位相异时,结果为1.参与运算的数以补码的形式出现 作用:使特定位的值取反;      不引入第三方变量,交换两个变量的值。
  1. 左移右移的注意事项
  答:左移“<<”右边的数指定移动的位数,高位丢弃,低位补0;       右移“>>”右边的数制定移动的位数对于有符号的数,右移,符号位随同移动,当为正数时,最高为补0;为负数时,最高位补0还是补1,有编译系统决定。
  1. 使用位操作的优势及使用技巧
  答:优势:使用位操作可以减少除法和取模的运算,一般的位操作是用来1.控制硬件2.进行数据交换,但是灵活的位操作可以有效地提高程序运行效率。   使用技巧:对于以2的指数次方为“*”“/”“%”因子的数学运算,转化为移位运算“<<”“>>”通常可以提高算法效率,因为乘除运算指令周期通常比位移运算大。