一、基本知识
在C/C++中,“=” 在语言中的作用并非是数学意义上的“等于号”,也不表示判断。
“=”在这里的意思是赋值:表示把它右边的值赋给左边。
一般形式为:变量=表达式;
有的时候编译器会提示不是合法的“左值”,就是说赋值号左边不是能被赋值的变量。
二、例题
输入两个正整数a和b,试交换a和b的值。
分析:这是一个典型的赋值题目,没有其他的运算,只是赋值。
我们可以这样类比,有两个杯子A和B,分别装了醋和酱油,现在让你将两个杯子所装的交换,在没有别的辅助条件的情况下是很难办到的。所以,我们可以引入第三个杯子C,一个空杯子。我们是这样操作的:
1.将A杯中的醋倒入C杯;
2.将B杯中的酱油倒入A杯;
3.将C杯中的醋倒入B杯;
在这里我们将倒入的工作看成是赋值
于是就有:
C=A;
A=B;
B=C;
注意以上步骤中,被倒入的杯子被放到了左边。
参考代码:
#include<iostream>
using namespace std;
int main()
{
int a,b,c;
cout<<"请输入a和b的值,用空格隔开:";
cin>>a>>b;
c = a; //注意这里a的值虽然赋给了c但是a的值此时依然没变
a = b; //同上,b的值这时没变 ,但是a的值改变了
b = c; //交换完成,c的值不会改变
cout<<"交换后a和b的值分别为:" ;
cout<<a<<" "<<b<<endl; //打印交换后的a和b的值
return 0;
}