刷野打怪上王者·C++篇·第8期·运算操作

参考链接

RUNOOB.COM

运算操作

    上几篇已经讲了C++中变量和数据存储,后面我们将讲对里面的数据进行操作需要C++提供了哪些运算符。C++中常见的运算符:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、杂项运算符

算术运算符:包括+(加)、-(减)、*(乘)、/(除)、++(自加)、--(自减)。下面我们通过程序来进行说明:

#include <iostream>

using namespace std;
int main()
{
	float iVar1 = 1, iVar2 = 2;
	int tmpVar;

	cout << "iVar1 + iVar2 = " << iVar1 + iVar2 << endl; //加
	cout << "iVar1 - iVar2 = " << iVar1 - iVar2 << endl; //减
	cout << "iVar1 * iVar2 = " << iVar1 * iVar2 << endl; //乘
	cout << "iVar1 / iVar2 = " << iVar1 / iVar2 << endl; //除(除数和被除数都是两个浮点型型)
	iVar1--;                                             //相当于 iVar1 = iVar1 - 1;
	cout << "iVar1 -- =" << iVar1 << endl;                //自减
	iVar2++;                                            //相当于 iVar2 = iVar2 + 1;
	cout << "iVar2 -- =" << iVar2 << endl;               //自加

	/*特别说明*/
	int iTestVar1 = 2, iTestVar2 = 3;
	float  fTestVar1 = 3;
	cout << "iTestVar1 / iTestVar2 = " << iTestVar1 / iTestVar2 << endl; //除(除数和被除数都是两个整型)
	cout << "iTestVar1 / fTestVar1 = " << iTestVar1 / fTestVar1 << endl; //除(除数是整型,被除数是浮点型)
	cout << "fTestVar1 / iTestVar2 = " << fTestVar1 / iTestVar1 << endl; //除(除数是整型,被除数是浮点型)
	getchar();
}

运行结果

iVar1 + iVar2 = 3
iVar1 - iVar2 = -1
iVar1 * iVar2 = 2
iVar1 / iVar2 = 0.5
iVar1 -- = 0
iVar2 -- = 3
iTestVar1 / iTestVar2 = 0
iTestVar1 / fTestVar1 = 0.666667
fTestVar1 / iTestVar2 = 1.5

 注:请注意上面程序中的特别部分,在除法中一个为整型和一个为浮点型,他们的结果为浮点型;如果两个为整型,则除法的结果为整型

关系运算符:其实就是比较判别式两边的大小,主要包括:>(大于)、<(小于)、==(等于)、!=(不等于)、>=(大于等于)、<=(小于等于)。下面我们通过程序来进行说明:

#include <iostream>

using namespace std;
int main()
{
	float iVar1 = 1, iVar2 = 2;
	
	if(iVar1 > iVar2)
		cout << "iVar1 大于 iVar2 " << endl; 
	else if(iVar1 < iVar2)
		cout << "iVar1 小于 iVar2 " << endl; 
	else if (iVar1 == iVar2)
		cout << "iVar1 等于 iVar2 " << endl; 
	else if (iVar1 != iVar2)
		cout << "iVar1 不等于 iVar2 " << endl; 
	else if (iVar1 <= iVar2)
		cout << "iVar1 小于等于 iVar2 " << endl; 
	else if (iVar1 >= iVar2)
		cout << "iVar1 大于等于 iVar2 " << endl;
	getchar();
}

运行结果

iVar1 小于 iVar2

注:改变变量的数值,可以测试其它运算符。这里的if语法我们先不要考虑,后面会继续讲。

逻辑运算符:主要有三个逻辑运算符,&&逻辑与(A与B同时为真才表示真)、||逻辑或(A与B只要有一个为真就表示真)、!逻辑非(A为真,!A则为假;反之,A为假,!A则为真)。下面我们通过程序来进行说明:

#include <iostream>

using namespace std;
int main()
{
	float iVar1 = 0, iVar2 = 2;

	if (iVar1 && iVar2)
		cout << "iVar1 && iVar2 " << endl;
	if (iVar1 || iVar2)
		cout << "iVar1 || iVar2 " << endl;
	if (!iVar1)
		cout << "!iVar1" << endl;
	if (!iVar2)
		cout << "!iVar2 " << endl;
	getchar();
}

运行结果

iVar1 || iVar2
!iVar1

:在C++中,只有当变量对应的存储值为0时,才表示;其它则为真。

位运算符:主要是对字节中的字符进行操作,包括&按位与、|按位或、^按位异或、~按位取反、<<左移、>>右移。

p q p&q p|q p^q ~p
0 0 0 0 0 1
0 1 0 1 1 1
1 0 0 1 1 0
1 1 1 1 0 0

下面讲一下左移和右移,先假设A和B分别为12和13:

A = 0000 1100

B = 0000 1101

A<<2 = 0011 0000 (对应48)

B<<2 = 0011 0100(对应52)

赋值运算符:其实赋值运算符简单的就是一个=,但是因为存在一些符合性的操作,所以符合操作运算符包括:+=-=*=/=%=<<=>>=&=^=、|=,这些操作其实就是变量先进行等号左边对应的运算,然后在赋值给自身。使用方法

A *= B; 等同于 A = A * B;  //其它方法以此类推

杂项运算符:这个其实算一些数据访问的方式,包括:sizeofCondition ? X : Y,(逗号)、.(点)和 ->(箭头)(这个主要用在结构体体,后面会讲解)、强制类型转换、&*。通过代码来展示一下:

#include <iostream>

using namespace std;
int main()
{
	//sizeof
	int iVar1 = 1, iVar2 = 2;     //逗号,顺序执行一系列操作
	cout << sizeof(iVar1) << endl; //返回int的占位符

	int iVar = (iVar1 > iVar2) ? iVar1 : iVar2; //条件为真,输出iVar1;反之,iVar2
	cout << "(iVar1 > iVar2) ? iVar1 : iVar2 = " << iVar << endl; //返回int的占位符

	int *iPointVar = &iVar2;    //取iVar2变量的地址
	cout << "*iPointVar = " << *iPointVar << endl; //取iPointVar地址对应的存储值

	float fVar = 4.123;    //浮点型变量
	cout << "int(fVar) = " << int(fVar) << endl; //强制类型转化为整型

	getchar();
}

运行结果

4
(iVar1 > iVar2) ? iVar1 : iVar2 = 2
*iPointVar = 2
int(fVar) = 4

:在数据进行运算操作中,肯定会遇到运算优先级高低的问题,这个只要记住就可以,不是很清楚的时候,最简单的方法就是添加括号。下面给出表格,大家自己简单记一下就可以:

发布了176 篇原创文章 · 获赞 24 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/CSS360/article/details/104094306