计算机发明最早是为了辅助计算。那么我们今天开始学最基本的运算符。
之前已经说到,计算机程序语言的发明就是源自生活高于生活,所以运算符也类似于我们生活中的运算符。
数学中的+-×÷对照于+-*/。那么我们来进行一下简单计算。也复习一下之前的知识。
运算符也有先后顺序,等同于我们数学中的先乘除再加减。但是编程中的运算也有简便的写法,例如i++,++i,i*=2,这样的特殊形式。实际上i++和++i就等同于i=i+1;但是要注意运算符顺序。i=i++和i=++i就不一样,
#include <iostream>
using namespace std;
int main() {
int i;
int a=3;
i=a++;
cout << "i的值为:"<<i<<endl;
cout << "a的值为:"<<a<<endl;
return 0;
}
我们调整一下顺序:
#include <iostream>
using namespace std;
int main() {
int i;
int a=3;
i=a;
cout << "i的值为:"<<i<<endl;
cout << "a的值为:"<<a<<endl;
return 0;
}
i=a++,先把a赋值给i,然后a=a+1。
i=++a,先把a=a+1,然后i=a。
但是要注意一种特殊情况:自己赋值给自己的情况。i=i++的情况,并不是i=i,然后i=i+1两步,而是只有一步i=i。
#include <iostream>
using namespace std;
int main() {
int i=3;
i=i++;
cout << "i的值为:"<<i<<endl;
return 0;
}
而i=++i,才等同于i=i+1。
好了,就是这么简单,以上++这种方式又叫做累加器。
对于i*=2的情况,实际上是i=i*2,为什么能写成这种形式呢?因为运算符的操作结构是栈结构,在编译过程中将运算符按照一定顺序压入栈再进行操作。后期我们讲到高级数据结构的时候再详细讲解。这里大家只要记住这样的顺序即可。
我们来试一下这样的练习吧,心算一遍,看看与你思考的一样吗?
#include <iostream>
using namespace std;
int main() {
int i=0;
i=i+1;
cout << "i的值为:"<<i<<endl;
i=i*8;
cout << "i的值为:"<<i<<endl;
i=i-2;
cout << "i的值为:"<<i<<endl;
i=i/3;
cout << "i的值为:"<<i<<endl;
i++;
cout << "i的值为:"<<i<<endl;
i=i++;
cout << "i的值为:"<<i<<endl;
i=++i;
cout << "i的值为:"<<i<<endl;
i+=2;
cout << "i的值为:"<<i<<endl;
i*=2;
cout << "i的值为:"<<i<<endl;
return 0;
}