C语言复习总结篇(一)

1、容易出错的运算符
(1)++i/- -i 先加减,在赋值
i++/i– 先赋值,在加减
(2)表达式A && 表达式B (若A为假,则不计算B)
表达式A || 表达式B (若A为真,则不计算B)
(3)按位& 相同位数的两个数都为1,则为1。若有一个为0,则为0。
按位 | 相同位数中有一个为1,则为1。否则为0。
异或^ 相同位上不一样为1,一样为0
(4)<< 左移几位,右边加几个0

右移补符号位,右移相当于除法  (5 = 11/2^1)1011>>1  变成了0101

(5)/ % 不能对0进行运算,%操作数必须为整数
注意:表示分数1/2 4/9时,应写成1.0/2 4.0/9

2、进制转换
(1)%d 十进制输出
%0 八进制输出
%0x 十六进制输出
(2)计算方法
16进制转2进制:把16进制中的每一位转化为2进制,每个数分4位,不足4位者在前面补0
eg: 0X 7 1 5 4 4
0111 0001 0101 0100 0100 二进制数串连起来就是结果
2进制转化为16进制:16进制中的0~15,用2进制数表示为:0000~1111,即4位2进制数为一个16进制数
eg: 0011 1101
3 D 3D即是00111101的16进制转化

     2进制转8进制:把2进制数3位一截,对应转换,然后结果相连,原理同上

    8进制转化2进制:把8进制中的每一位分别转化为2进制,每个数分3位,不足补0,同上

3、do whlie和whlie的区别

C语言复习总结篇(一)_第1张图片

do(…) while(0)的用法及好处
(1)、辅助定义复杂的宏,避免引用时出错
C语言复习总结篇(一)_第2张图片
(2)、避免空宏引起的warning
内核中由于不同架构的限制,很多时候会用到空宏,在编译的时候,空宏会给出warning,为了避免这样的warning
这里写图片描述

4、数组名取地址+1的用法
(1)、在定义数组的同一个函数中,数组名表示整个数组
C语言复习总结篇(一)_第3张图片

(2)、求数组长度
sizeof(arr)/sizeof(arr[0])

5、变量的生存周期
C语言复习总结篇(一)_第4张图片

你可能感兴趣的:(C语言)