1. 语句与表达式
语句是带有;的表达式
任何表达式都有其数据类型
2. 运算符
单目/双目/三目:要求参与运算的操作数
运算优先级:
3. 关于除数运算和求余运算
%求余数必须为整型(int,short,long,long long)
3.1运算时保持数据类型一致,int与int做除法运算时,结果的小数部分会丢失
3.2进行除法运算和求余运算时,右操作数为零时,编译器只做类型检查,不报错,但运行会导致程序蹦崩溃,余下内容也不再运行
3.3求余运算必须是整型或整型相兼容的类型求余,运算的正负由左操作数决定,右操作数不能为3.4求余数运算结果一定小于右操作数
运算结果为0,1,2循环33次后再加上0,1共计101次。
Linux程序员设计手册
产生100内的10个随机数
4.形参与实参
形参:用于指定函数被调用时接收参数的数据类型和数量
实参:函数被调用时传递给函数的实际值
5.random()和srandom()
5.10.rangdom()和srangdom()定义在stdlib.h头文件中,用于生成伪随机数
5.20.rangdom():用于生成一个伪随机数
5.30.srangdom():用于设置random()的种子值,同一种子值生成的随机数相同
6.time0):定义在time,h头文件中,获取1970年1月1日0时0分0秒至今的秒数
printf输出浮点型数据时,超出六位小数的部分会进行四舍五入。
水平方向属于必转,两个float运算也会转成double类型,竖直方向为不同类型数据运算的转换方向。由类型转换运算符进行的数据转换属于强制类型转换,需要注意的时,强制类型转换属于临时转换,对操作数本身没有影响,高精度数据强制转换低精度数据类型时会发生数据内容部分丢失。
自增/自减运算符(2, 自右向左)
自增/自减运算符前置和后置的区别: 前置属于在原有内存空间内进行运算,后置需要系统创建临时变量并分配内存空间进行运算,用完后,该内存空间被收回。临时变量的数据类型取决于参加运算的操作数。
浮点型数据也能及进行自增/自减。左值、右值:以赋值运算符为基准, 通常左值为变量, 右值为常量。所有临时变量均为右值。
const修饰的变量属于只读变量,为左值。
赋值运算符(14, 自右向左)
关于混合类型的数据赋值时:
整型赋给浮点型: 数值不发生变化。
浮点型赋给整型:小数部分截断。长整型赋给短整型保留低8位(高位截断)
短整型赋给长整型:符号位扩展。
字符型赋给整型时,若属于无符号字符型,存低8位, 高8位补零;
若属于有符号字符型,符号位扩展。
逗号运算符 (15, 自左向右)
最终输出结果取最后一个运算结果。