文档详情

第三章数据类型运算符.ppt

发布:2020-02-25约1.28万字共65页下载文档
文本预览下载声明
表达式运算时的关键问题: (1) 算符优先极问题(不同级别算符的计算次序) (2) 算符结合次序(优先级平级时的计算次序) (3) 算符操作数个数(一目或二目算符) (4) 算符对应操作数类型 3.3.2 算术运算符和算术表达式 1、算术运算符 说明: ①“+”,“-”运算符——单目运算:取正、负值运算;优先级高 双目运算:加、减运算;优先级低 ②除法运算“/”—— 整数(字符)相除结果是整型(商),小数部分全部舍去 实数相除,所得的商也为实数。 例如:1/3=0 只取结果的整数部分0 ,舍去0.333333 15/4=3 只取结果的整数部分3,舍去0.75 1.0/3=0.333333 13/4.0=3.250000 整数相除时,若不能整除将造成误差,要避免整数直接相除。 ③模运算%也称为求余运算。要求两个运算对象都为整型,其结果是整数除法的余数。例如: 5%10=5 10%3=1 -10%3=-1 算术运算符的优先级及结合性如下: 例如表达式 x/(67-(12+y)*a) 的运算顺序是: 2、算术表达式 c语言的算术表达式由算术运算符、常数、变量、函数和园括号组成,其基本形式与数学上的算术表达式类似。例如: 3十5 12.34—23.65*2 -5*(18%4+6) x/(67-(12+y)*a) 带函数调用的算术表达式。以数学函数的调用为例,c语言把数学计算中常用的计算公式(或算法)抽象定义为一个个的函数,这些函数的集合构成了C语言的数学库(见附录c),在程序中用到相应的函数时只要直接调用即可。 例如,数学表达式:sin(x)+cos(y/2) c语言算术表达式:sin(x)+cos(y/2) 函数库:(#include math.h) 例3-6 下列数学表达式: 对应的c语言算术表达式为: 3.3.3 自增、自减运算符(++、--) (1) ++i和i++ 最后都使i=i+1,但顺序不同,意义不同 例:int i=3,j; 对于j=++i;相当于① i++; ② j=i; 对于j=i++;相当于① j=i; ② i++; (2) ++,--只能用于变量(不能用于常量和表达式) ++3, ++(a+b), (x+5)++ × ++i(--i):先将i的值加(减)1,然后使用i i++(i--):先使用i,然后将i的值加(减)1 开始 结果 3 i 4 j 4 3 i 4 j 3 (3)用于++,--运算的可以是有序类型的变量 (4) ++,--的结合性是自右向左的。 例题1:int i=3,k; k=(i++)+(i++)+(i++) ; 则:k=? i=? 相当于 ① k=i+i+i; k=9 ② i++;i++;i++; i=6 例题2:int i=3,k; k=(++i)+(++i)+(++i) ; 则:k=? i=? 相当于 ① i++;i++;i++; i=6 ② k=i+i+i; k=18 例题3:若i=3 则printf(“%d”, -i++); 则:打印?; i=? 输出: -3 (然后,i增值为4) 例题4:若i=3 则printf(“%d”,i++ + ++i);则:打印?; i=? 1.i++ + ++i ----- 取i的地址 2.i++ + ++i ----- i值加1为4 3.i++ + ++i ----- 1的值(4)+2的值(4)得3的值8。输出:8 4.表达式计算完成后,求1.i++的i自加1。i增值为:5 一般写为: (i++)+(++i)。。 3.3.4 赋值运算符和赋值表达式 1、 赋值运算符 (=) 计算赋值运算符“=”右边表达式的值,并将计算结果赋给“=”左边的变量。 2、赋值表达式:变量 = 表达式 ① 计算赋值运算符右边“表达式”的值, ② 将计算结果赋值给赋值运算符左边的“变量” , ③ 赋值表达式的值就是赋值运算符左边“变量”的值 3、赋值运算符按自右至左结合顺序(右结合) 例1:int a=2,b=3,c=4; a=b=c=5
显示全部
相似文档