C语言碎片②
random函数
用处:产生随机数用于测试
#include<time.h>
通过获取当前时间的毫秒做参数
使用:rand()%m;
0 <= getnumber <= m-1
对取值进行m的取余从而控制随机数的范围
有关控制变量的写法
之前:for( i=0 ;i<10 ;i++)
缺点:如果控制变量更改,不再是10,那么代码的改掉就比较大并且普通数字也不好辨识。
改进:定义一个常量来作为控制的值
const int max=10;
for( i=0 ;i<max ;i++)
这样,当控制变量改变是修改的代码会降低不少,提示也易于以后观察代码。
有关sizeof() 运算符
!!!前提:int i;
sizeof (i++) //运行完成后i的值不会改变,整体表达式的值仍然是整型
sizeof (i+1.0) //此时表达式的值为浮点型的字节大小
sizeof (char a[5]) //此时表达式的值不是五个char型变量的字节总和而是char型的大小。
逗号表达式
逗号连接两个表达式,并将最后一个表达式作为整体的结果。
i=3+4,5+6;
i的值是7,但是整个表达式的值是11
m=( i=3+4,5+6 ) ;//m的值为11
括号是为了提高运算优先级,使3+4和5+6先执行
二进制理解
利用最大有效值的溢出来做减法
1+(-1)=0
二级制表示 0000 0001 +1111 1111 刚好是0(溢出了一位)。
将十进制的-1变为二进制的 1111 1111 的过程:求反码再加1
短路
使用 && || 时会出现短路现象,当左侧能够预知整体情况是不在执行右面的表达式。
尤其注意参与运算的自增自减
类型转换
多个类型参与运算会自动转换为高精度类型防止精度丢失。
强制转换:(强制转换的类型) 变量
( int ) a;