有了变量,我们便可以对它进行操作。
首先,我们来了解一下表达式的概念。
表达式是由数字、算符、数字分组符号、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。 ——来自百度百科
在C++中,一个表达式一定有一个返回值,比如a + b返回的是a的值加b的值等。
下面,我们一起来了解各种运算符的意义和应用。
一、运算符的意义
符号 | 意义 | 应用示例 |
+, -. *, / | 分别对应加减乘除 | int c = (a + b - c) * d / e; |
= | 赋值运算符 | int b = a, d = c; |
% | 取余运算符 | int a = b % c; |
<<, >>, &, |, ~ | 位运算符 | int a = b >> c; |
这就是最基本的算术运算符了。其中,位运算我们暂时用不到(即使用到大多也是装13用的),在这里不做讲解,想要了解的读者可以戳 ↓ 。
其中,最基本的加减乘除不做讲解,需要注意的是,除法运算比较特殊。
1、除法 /
整数 / 整数,结果为整数(向下取整)
int a = 10, b = 3;
int c = a / b;
cout << c << endl;
//输出:3
浮点数 / 整数或浮点数,结果为浮点数:
int a = 10, b = 4;
double c = (double)a / b;
double d = (double)a / (double)b;
cout << c << ' ' << d << endl;
//输出:2.5 2.5
2、赋值运算 =
赋值运算符也是有返回值的,即赋值后的变量:
int a = 5, b = 10;
cout << (a = b) << endl;
//输出:10
所以,我们就可以实现连续赋值:
int a, b;
a = b = 0;
cout << a << ' ' << b;
//输出:0 0
为什么可以这么做呢?因为赋值运算符从右往左运算,也就是先执行b=0,再执行a=b。
因此,我们看到的a和b都被设置成了0。
3、取模/取余运算 %
与数学不同,C++中的 % 不是指百分比,而是指取模(mod),也就是余数:
int a = 10, b = 4, c;
c = a % b;
//c = a - a / b * b;
cout << c << endl;
实际上,第二行和第三行是等价的,大家看着理解就好,这里一般不会使用第二种方法取模。
二、int和char类型
还记得我在上一章抛出的问题吗?char为什么属于int呢?我们一试便知。
char c = 'A';
cout << (int)c << endl;
这里,我们把字符变量c强制转换成了int类型,结果怎样呢?
程序没有报错,输出了65。这是怎么回事呢?让我们再来试试。
cout << (int)'B' << ' ' << (int)'C' << endl;
程序分别输出了66和67。也就是说,字符实际上就是int类型。
这里就不得不提到ASCII码的概念了。ASCII码全程美国标准信息交换码,可以理解为是字符的编码,其中大写字母A为65,小写字母a为97,具体的表格列在下方:
(来自ASCII码对应表,ASCII码值的大小顺序 (zhihu.com),侵删)
实际运用中,我们一般不使用具体的ASCII码值,而是用字符代替。
例如,下面的程序就把字符c转化为整数变量a:
int a; char c;
cin >> c;
a = c - '0';
cout << a << endl;
哦对了,第二行的cin语句功能为从窗口读入数据,和cout一样,它啥都能读,具体不做说明。
那么今天这篇文章就到这里了,下期我们将会了解数组的概念以及一些基础的语句。
最后,如果你觉得这篇文章还不错的话,麻烦点个收藏点个关注,这是免费的,您随时可以取消。你们的支持是作者最大的动力!