(一)、复合运算符
在C++中,可以通过“赋值语句”来修改变量的值。赋值语句的格式:
变量名 = 值或者表达式;其中"="称为"赋值运算符"。
除此之外,在赋值运算符当中,C++有复合赋值运算符,它们实际上是一种缩写形式,使得对变量的改变更为简洁。复合赋值运算符用于将某个变量的当前值与另一个变量进行运算再赋值给该变量,这些运算符结合了基本的赋值运算符"="和运算符(例如:+、-、*、/、%),即在赋值运算符前面加上运算符构成复合赋值运算符,常见的复合运算符有:加法赋值运算符(+=) 、减法赋值运算符(-=)、乘法赋值运算符(*=)、除法赋值运算符( /=)、取模赋值运算符(%=)。例如:
n+=i |
相当于 | n=n+i |
n-=i | n=n-i | |
n*=i | n=n*i | |
n/=i | n=n/i | |
n%=i | n=n%i |
假设n=7,i=2,上述表格内容可以修改为:
n+=i | 相当于 | n=7+2(n的值修改为9) |
n-=i | n=7-2(n的值修改为5) | |
n*=i | n=7*2(n的值修改为14) | |
n/=i | n=7/2(n的值修改为3) | |
n%=i | n=7%2(n的值修改为1) |
实战训练—阅读程序,写出运行结果。
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,i;//定义两个变量n和i
cin>>n>>i;//输入n和i的值分别为9和4
n+=i;//n的值为13:n+i=9+4=13
cout<<n<<" "<<i<<endl;//输出13 4
n-=i;//n的值为9:n-i=13-4=9
cout<<n<<" "<<i<<endl;//输出9 4
n*=i;//n的值为36:n*i=9*4=36
cout<<n<<" "<<i<<endl;//输出36 4
n/=i;//n的值为9:n/i=36/4=9
cout<<n<<" "<<i<<endl;//输出9 4
n%=i;//n的值为1:n%i=9%4=1
cout<<n<<" "<<i<<endl;//输出1 4
return 0;
}
(二)、赋值复合:C++支持在一个表达式里出现连续的赋值号,即一次给几个变量赋同一个值。此时计算顺序是从右到左,有括号存在的,先计算括号内的表达式。
实战训练—阅读程序,写出运行结果。
#include<bits/stdc++.h>
using namespace std;
int main() {
int a=4,b=4;//定义变量a和变量b,并初始化为4
cout<<a<<" "<<b<<endl;//输出4 4
(a=b)=20;//先将b的值赋值a,再将20赋值给a
cout<<a<<" "<<b<<endl;//输出20 4
(a+=b)=30;//先将a的值加b的值24赋值给a,再将30赋值给a
cout<<a<<" "<<b<<endl;//输出30 4
return 0;
}
(三)、逗号表达式:
在C++中,允许用逗号连接几个表达式,构成一个更大的表达式,称为“逗号表达式”。 其格式如下:表达式1,表达式2,…表达式n;各个表达式的计算顺序是从左往右,最终整个表达式的值是“表达式n”的值。
实战训练—阅读程序,写出运行结果。
#include<bits/stdc++.h>
using namespace std;
int main() {
int a=4,b=4;//定义变量a和变量b,并初始化为4
int c =(a*20,b+30); //先计算表达式a*20的值为80,再计算表达式b+30的值为34,将表达式2的值34赋值给c
int d =(a+30,b*20); //先计算表达式a+30的值为34,再计算表达式b*20的值为80,将表达式2的值80赋值给d
cout<<a<<" "<<b<<" "<<c<<" "<<d<<endl;//输出 4 4 34 80
return 0;
}