.运算符的概念和分类
运算符是告诉编译程序执行特定算术或逻辑操作的符号。
分类:1)按功能分类:算术运算符、逻辑运算符、和关系运算符和按位运算符。
2) 按操作说划分:单目运算、双目运算和三目运算。
算术运算符分为:+ (加)、-(减)、 *(乘)、 /(取整)、 %(取余)
注意:在取整数时,如果有小数,则取整结果为小数
求余时:被除数的符号决定了结果的正负符号。除数不能为0 因为无意义
6.基本运算符的类型转换问题
注意:当一个很的大数加一个小数时 如果小数时float型运算结果容易出现错误,因为float型只有七位数字。
数据类型间的强制转换时暂时的其实并没有改变被转换数的值。
例:float a=3.00002 ; Int b=3545;
Printf(“%d”,(int)a+b); 结果只有七位有效数字
Printf(“%f”,a); 3.00002
7.赋值运算符 = 自右相左结合
Int a=b=c=10; 错误 因为int a 表示定义变量 当定义a时 赋值的是未知变量b,所以要先定义 后赋值。
Int a,b,c;
a=b=c=10;正确
11.sizeof运算符
Sizeof是一个单目运算符
作用域:计算常量、变量、数据类型在内存中所占的字节数。
Int a;
a=Sizeof 1;注意:当sizeof用在常量和变量时 可以省略括号
a=sizeof (int);
Printf(“%d”,a); 结果为4 因为整数1 为整型 所占字节数为4位。
12.逗号运算符
将多个表达式连接起来成为一个表达式。整个表达式的结果是最后表达式的结果
例:a=3;b=4
Result=(a+3,b+2);运算结果为6
14.关系运算符 左结合
> 、>= 、< 、<= 优先级高于 == 、!=
关系运算符的结果只有真和假
16.逻辑运算符
&& :优先级为 11 ,||: 优先级为12(左结合) !右结合
逻辑运算的短路问题
A||B A为真 结果为真 B不执行
A&&B A为假 结果为假 B不执行
Int a=b=0,result=-1;
Result=++a||++b&&b;因为++a后为真(1),结果为真 所以后边就不在执行了。
19 三目运算符和求值方法 右结合
形式:表达式1?表达式2:表达式3 如果表达式1为真 结果就是表达式2的值 否则为表达式3的值 |
|