输出结果:
11 请按任意键继续. . .
那我们现在分析下过程。
1.10 * 2 / 5 + 8 - 1 //先乘除,后加减 2.20 / 5 + 8 - 1 //从左到右计算 3.4 + 8 - 1 //从左到右计算 4.12 - 1 //从左到右计算 5.11 //结果
这就是程序的计算过程。
2.3.1
简单的运算符
这是 2.3 中的一小段,主要想在这段说明下简单化的运算符。
此类运算符使运算更简洁。
在上面介绍了算数运算符,那么有没有算数运算符的简单化呢?
答:
有。
以下表格A的值为9。
运算符号 运算规律 运算例子 原式 结果 += 从右到左 A += 3 A=A+3 12 -= 从右到左 A -= 3 A=A-3 6 *= 从右到左 A *= 3 A=A*3 27 /= 从右到左 A /= 3 A=A/3 3
以上四个运算符运算顺序是一样,没有谁是优先的。
注意的是,它是从右到左运算的。
例子:
int a,b; A=10; B=20; B*=a+=10;
输出结果:
400 请按任意键继续. . .
让我们分析下计算过程。
B * = a + = 10 //原式
B * = (a = a + 10) //从右到左,而且顺序相同,加上括号是为了分辨,括号不起作用。
B * = a // 此时:
B * = 20
B = B * a // 此时:
B = 20 * 20 B // 此时 B = 400
以上就是计算过程。
2.4
对比运算符
对比运算符用于比较两边的的运算值作用,当结果为真时(数字代表为 1 ),当结果为假时,(数字代表为 0 )。
运算符号 运算符名称 运算规律 例子 == 等于 从左到右 A == B > 大于 从左到右 A > B < 小于 从左到右 A < B >= 大于或等于 从左到右 A >= B <= 小于或等于 从左到右 A <= B !
= 不等于 从左到右 A !
= B
说明一下,由于字体问题,“==”号看上去像“=”,其实“==”号是两个“=”组成的。
以下为使用例子:
Int a,b;
A=10;
B=20;
Cout<<“a == b 结果:
”<<(a==b)<cout<<“a > b 结果:
”<<(a>b)<Cout<<“a < b 结果:
”<<(a
Cout<<“a >= b 结果:
”<<(a>=b)<Cout<<“a <= b 结果:
”<<(a<=b)<Cout<<“a !
= b 结果:
”<<(a!
=b)<输出结果:
A == B 结果:
0
A > B 结果:
0
A < B 结果:
1
A >= B 结果:
0
A <= B 结果:
1
A !
= B 结果:
1 请按任意键继续. . .
那么我们来分析一下这段代码吧。
上面我已经说过,当真为 1,假为 0。
A == B,A是10,B是20,怎么可能等于呢,所有结果为 0,即为假。
A > B,A是10,B是20,B大于A,所有结果为 0,即为假。
A < B,A是10,B是20,B大于A,所以结果为 1,即为真。
A >= B,A是10,B是20,因为A不大于B,也不等于B,所以结果为 0,即为假。
A <= B,A是10,B是20,因为A小于B,但不等于B,所以结果为 1,即为真。
A !
= B,A是10,B是20,A不等于B,所以结果为 1,即为真。
对于上面的分析,可能你产生疑问为什么 A <= B 结果是1呢?
答:
因为 “<=”号和 “>=”号 只要实现了其中一个条件就行。
2.5
逻辑运算符
C++的逻辑运算符于条件中执行真,假值运算,以计算结果的真或假控制程序过程。
执行运算时,结果为 0 代表假,1 代表真。
“!
” 是一级运算符,并且是从右到左运算的运算符。
上面中,逻辑运算符操作的运算值 A,B 可以是判断式的执行结果。
下面是例子:
Int a,b;
A=20;
B=10;
Cout<<(a>b)&&(a
Cout<<(a>b)||(a
Cout<
(a>b)<输出结果:
(a>b)&&(a
0 (a>b)||(a
1 !
(a>b):
0
请按随意键继续. . .
让我们分析一下结果:
(a>b)&&(a
1&&0 //a大于b,正确,输出1.a不小于b,错误,输出0
1 //因为两边结果不是为真,所有结果为0
!
(a>b)||(a
!
1 //a大于b,正确,输出1.a不小于b,错误,输出0 1 //因为“||”只要一边为真,结果是为1
!
(a>b) //首先计算括号,a是20,b是10. !
1 //因为a大于b,所有输出1
0 //因为 “!
”在对比值为1的时候,输出0,对比值为0时,输出1
以上就是分析过程。
2.6
++,--,sizeof 运算符
++,-- 运算符
程序经常会用到类似的运算
++ A 或者 A ++
++A 和 A++ 的区别,++A 是先把A加1后赋值给A,再把A传出。
A++ 则是先把A传出,再把A+1赋值给A。
两者的区别如下代码:
int a,b; a=1,b=1; cout<输出结果:
1 2 请按随意键继续. . .
从上面代码与结果看到,A++ 与 ++A 的区别。
--与++运算符的不同就是是减1,而返回值的规律和++A,A++相同。
2.6.1
Sizeof 运算符
Sizeof 运算符用于数据类型,或变量在内存所占位置大小,语法如下:
Sizeof(数据类型)
Sizeof(变量)
Sizeof 的详细使用如下:
int a;
cout<输出结果:
4 4
让我分析下意思。
第一个4是说明int类型占内存的位置大小。
第二个4是说明a变量占内存位置大小。
有人会问,为什么变量a是4呢?
答:
因为变量a是int类型,所有占内存位置是4。
2.7
运算符“,”
1 请按随意键继续. . .
If的结果取决于最后的一个条件,3<4 真,所以会输出1。
在有“,”运算符的判断里,最后一个返回值为关键。
2.8
条件运算符 “?
:
”
条件运算符配合条件,控制执行结果。
语法如下:
(条件) ?
结果1 :
结果2
当条件成立时,执行结果1,当条件不成立,执行结果2。
但是“?
:
”运算符里,可选择执行的结果1和结果2,只容许在单行,不能用大括号扩充。
因此,结果1和结果2的最后是不用再加上“;”了。
在程序中,如果使用条件运算符单行执行,就需要在后加上结尾符号。
但是在函数中,并且未成为独立执行,那么最后就不用加上结尾符号。
以下分别说明条件运算符如何以“单行执行”使用,和如何以“函数内执行”或“前置执行”。