【C++】C++基础知识(三)---运算符

1. 算术运算符

算术运算符用于执行代码的运算,C++支持的算术运算符如下所示:
假设a = 6,b = 3

运算符描述实例
+两个操作数相加a + b = 9
-两个操作数相减a - b = 3
*两个操作数相乘a * b = 18
/两个操作数相除a / b = 2
%取模运算符a % b = 0
++自增运算符a++后为7
自减运算符a–后为5

运算符使用注意事项:

  1. / 除法运算符
    1)两个整数操作数相除,结果依然为整数,小数部分去除;
    2)除数不能为0,否则会报错;
  2. %取模运算符
    1)取模运算是基于整数操作数的,小数不能进行取模运算;
    2)除数不能为0,否则会报错;
  3. ++(–)递增(递减)运算符
    1)分为前置递增(递减)与后置递增(递减),如:++a 、a++ 、–a 、a-- ;
    2)前置递增(递减)与后置递增(递减)都是让变量+(-)1;但是前置递增(递减)是变量先+(-)1,然后再进行表达式的运算;而后置递增(递减)是变量先参与表达式的运算,再+(-)1;
  • 代码演示
#include <iostream>
using namespace std;

int main() {

	//1、加减乘数运算(+ - * /)
	int a1 = 10;
	int b1 = 8;
	int b = 0;
	cout << a1 + b1 << endl;
	cout << a1 - b1 << endl;
	cout << a1 * b1 << endl;
	cout << a1 / b1 << endl; //两个整数相除,结果依然是整数,小数部分将去除
	//cout << a1 / b << endl; //报错,两个数相除,除数不能为0

	double a2 = 5.2;
	double b2 = 2.1;
	cout << a2 + b2 << endl;
	cout << a2 - b2 << endl;
	cout << a2 * b2 << endl;
	cout << a2 / b2 << endl; 

	//2、取模运算(%)基于整数
	cout << a1 % b1 << endl;
	cout << b1 % a1 << endl;
	//cout << a2 % b2 << endl; //两个小数是不能进行取模运算的
	//cout << a1 % b << endl; //报错,取模运算时,除数不能为0

	//3、递增(前置递增、后置递增)、递减(前置递减、后置递减)
	int A = 10;
	int B = 10;
	int C = 10;
	int D = 10;
	++A; //让变量+1
	B++; //让变量+1
	--C; //让变量-1
	D--; //让变量-1
	cout << "前置递增后为: " << A << endl;
	cout << "后置递增后为: " << B << endl;
	cout << "前置递减后为: " << C << endl;
	cout << "后置递减后为: " << D << endl;
	
	//前置递增/递减 和 后置递增/递减的区别
	int add1 = ++A * 10; //变量先+1后,再进行表达式的运算
	int add2 = B++ * 10; //先进行表达式的运算,再将变量+1
	int sub1 = --C * 10;
	int sub2 = D-- * 10;
	cout << "add1 = " << add1 << endl;
	cout << "add2 = " << add2 << endl;
	cout << "sub1 = " << sub1 << endl;
	cout << "sub2 = " << sub2 << endl;

	cout << "---前置递增后为: " << A << endl;
	cout << "---后置递增后为: " << B << endl;
	cout << "---前置递减后为: " << C << endl;
	cout << "---后置递减后为: " << D << endl;

	system("pause");
	return 0;
}

输出结果:
在这里插入图片描述

2. 赋值运算符

赋值运算符用于将表达式的值赋给变量,C++支持的赋值运算符如下所示:

运算符描述实例
=赋值运算符,将右边的操作数的值赋给左边操作数c = a + b
+=加等于赋值运算符,将左边的操作数加上右边操作数的结果赋值给左边的操作数c += a <—> c = c + a
-=减等于赋值运算符,将左边的操作数减去右边操作数的结果赋值给左边的操作数c -= a <—> c = c - a
*=乘等于赋值运算符,将左边的操作数乘以右边操作数的结果赋值给左边的操作数c *= a <—> c = c * a
/=除等于赋值运算符,将左边的操作数除以右边操作数的结果赋值给左边的操作数c /= a <—> c = c / a
%=模等于赋值运算符,将左边的操作数对右边操作数取模的结果赋值给左边的操作数c %= a <—> c = c % a
  • 代码演示
#include <iostream>
using namespace std;

int main() {

	//等于=
	int a = 10;
	a = 100;
	cout << a << endl;

	//加等于+=
	a = 10;
	a += 2;
	cout << a << endl;

	//减等于-=
	a = 10;
	a -= 2;
	cout << a << endl;

	//乘等于*=
	a = 10;
	a *= 2;
	cout << a << endl;

	//除等于/=
	a = 10;
	a /= 2;
	cout << a << endl;

	//模等于%=
	a = 10;
	a %= 2;
	cout << a << endl;

	system("pause");
	return 0;
}

输出结果:
在这里插入图片描述

3. 关系(比较)运算符

关系运算符用于表达式的比较,返回一个真值或者假值,C++支持的关系运算符如下:
假如:a = 3,b = 6

运算符描述实例
==比较两个操作数的值是否相等,相等则为真,否则为假a == b为假
!=比较两个操作数的值是否相等,不等为真,否则为假a != b为真
大于>比较两个操作数的值的大小,左值大为真,否则为假a > b 为假
<比较两个操作数的值的大小,左值大为假,否则为真a < b为真
大于等于>=比较两个操作数的值的大小,左值大于等于右值为真,否则为假a >= b为假
<=比较两个操作数的值的大小,左值小于等于右值为真,否则为假a <= b为真
  • 代码演示
#include <iostream>
using namespace std;

int main() {

	// ==
	int a = 10;
	int b = 12;
	cout << (a == b) << endl;

	// !=
	cout << (a != b) << endl;

	// <
	cout << (a < b) << endl;

	// >
	cout << (a > b) << endl;

	// <=
	cout << (a <= b) << endl;

	// >=
	cout << (a >= b) << endl;

	system("pause");
	return 0;
}

输出结果:
在这里插入图片描述

4. 逻辑运算符

逻辑运算符用于根据表达式的值返回真值或假值,C++支持的逻辑运算符如下所示:
假设a = 1,b = 0

运算符描述实例
&&逻辑与运算符,若两个操作符都为1,则条件为1a && b为0
ll逻辑或运算符,若两个操作符中任意一个位1,则条件为1a ll b为1
!逻辑非运算符,用来逆转操作数的逻辑状态,若条件为1,则逻辑非运算将使其为0!a 为0
  • 代码演示
#include <iostream>
using namespace std;

int main() {

	// 非!
	int a = 10;
	int b = 0;
	cout << !a << endl << !b << endl;

	// 与&&
	cout << (a && b) << endl;

	// 或||
	cout << (a || b) << endl;
	
	system("pause");
	return 0;
}

输出结果:
在这里插入图片描述

5. 杂项运算符

C++支持的其他一些重要的运算符如下所示:

运算符描述
sizeof返回变量占用内存的长度
condition ? x : y三目操作符(条件运算符),若条件满足,值为x,否则值为y
,逗号运算符,会执行一系列运算,整个逗号表达式的值是以逗号分隔的列表中的最后一个表达式的值
.(点)和->(箭头)成员运算符,用于引用类、结构体和共用体的成员
cast强制转换运算符,把一种数据类型转换为另一种数据类型,如int(3.14159),将返回3
&指针运算符&,返回变量的地址。如&a;将会给出变量的实际地址
*指针运算符指向一个变量。如p;指向变量p

6.运算符的优先级

运算符的优先级确定表达式中项的组合,这会影响到一个表达式如何计算。运算符的优先级见:

C++运算符优先级表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值