c编程运算入门教程(第一阶段学习小结4)
运算符又称操作符,是对数据进行运算的符号,参与运算的数据称为操作数或运算对象,由操作数和运算符连接而成的有效的式子称为表达式。
一、算术运算符
算术运算符有 、-、*、/、%共5个,由算术运算符连接操作数而成的式子称为算术表达式,算术表达式的操作数为数值型,其结果是一个数值。注意事项:
1.关于“除/”,当被除数和除数都为整数的时候,所得结果为整数,也就是算术表达式的商,舍弃了小数部分。如果想得到包含小数的结果,就要把它变成浮点数类型,方法为将被除数或除数乘以1.0让它变成浮点数,或通过强制类型转换等方式实现,同时要注意接收小数结果的变量也要为浮点数类型。如:
int a = 10;
float b = a*1.0/3; //方式1
float c = float(a)/3; //方式2
int d = static_cast<int>(b/3); //方式3
2.“%”是求模(余数)运算符,要求运算的两个数都是整数,如果有负数,则所得结果的符号( 或-)与左操作数相同。
3.算术运算符的优先级:与四则运算的顺序相同,从左到右,先乘除后加减。
二、关系运算符
关系运算符有>、>=、<、<=、==和!=共6个,均为双目运算符,用来比较两个操作数大小,关系表达式的操作数为数值型,表达式的结果为逻辑类型。如:
bool b = 20>=20; //b的结果是1
b = 'a'=='a'; //b的结果是1
注意事项:
1.6个关系运算符可以分为三组:>和<=,<和>=,==和!=,每组中2个运算符互为反运算。
2.赋值运算符“=”与判断等于的关系运算符“==”
(1)“=”是赋值运算符,把“=”右边的值赋给“=”左边的变量
(2)“==”是关系运算符,判断“==”两边的值是否相等,相等则表达式的值为1,不等则为0
三、逻辑运算符
逻辑运算符有逻辑与“&&”、逻辑或“||”、逻辑非“!”共3个, “!”为单目运算符,其它两个为双目运算符。逻辑运算的操作数是逻辑型数据(逻辑常量、逻辑变量、关系表达式、逻辑表达式等),若其不是一个逻辑值,则对于非0值转换成逻辑值1,对于0值转换为逻辑值0。逻辑运算的结果也是逻辑值。注意事项:
1.逻辑运算符的运算规则
(1)逻辑与:两个操作对象都为1时,其值为1,否则为0。
(2)逻辑或:两个操作对象都为0时,其值为0,否则为1。
(3)逻辑非:对操作对象取反,若操作对象为1,则运算结果为0;若操作对象为0,则运算结果为1。
2.数值表达式也可以作为一个逻辑型数据使用,当值为0时则认为是逻辑值0,当值为非0时则认为是逻辑值1。任何一个具有0和非0取值的式子都可以作为逻辑表达式使用。如:
int x = 1,y = 2;
cout<< ((x>0)&&(y>0)); //结果为1,注意整体要用括号括起来
cout<< ((x!=1)||(y==2)); //结果为1
cout<< !(x==1); //结果为0
cout<< (x&&false); //结果为0
3.短路
逻辑表达式中,进行“或”运算时,当第一个操作对象值为“真”时,整个表达式的值即为“真”,不会再计算“或”运算符后面的值;“与”运算时,当第一个操作对象为“假”时,整个表达式的值即为“假”,不会再计算“与”运算符后面的值。
四、圆括号运算符
使用圆括号可以改变运算的优先级,使得括号内的运算优先进行,与数学上的含义相同。C 中运算符很多,有时不容易记住优先级,此时用括号可以很明显地区分开来。当表达式太长时,加括号即使是多余的,也不改变运算顺序,但看起来比较直观,运算步骤更清晰,容易理解,也不会出错。在cout<<输出时,尽量要加括号将插入运算符后面的内容整体包起来,因为<<的优先级可能会高于式子中的运算符优先级,导致语句整体错误,编译时也会报错无法通过。
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com