运算符及优先级

Posted drac

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运算符及优先级相关的知识,希望对你有一定的参考价值。

C++:运算符及优先级

赵强 201831061427

?引言:在代码书写中,运算符的使用必不可少的,就像我们学习小学数学时使用的+,-,*,/,这四个也是数学中的运算符,我们也曾学过口诀:先乘除,后加减,就便是四则运算的优先级,而代码语句中,那么多的运算符,是不是也应该有优先级呢?

目录 

??一.运算符
??二.优先级
??三.数据类型转换

一.运算符

? ?在C++中有各式各样的运算符用于运算,
::?[]?->?.?++?--?!??~?-?+?*?->?等等许多运算符,在我们对于程序语句的书写中,运算符必不可少。

二.优先级

??在C++的一个表达式中可能包含多个有不同运算符连接起来的、具有不同数据类型的数据对象;不同的结合顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结合,才能保证运算的合理性和结果的正确性、唯一性。而这样的一定顺序,就叫做运算符优先级。

技术图片

例如:

#include <iostream>
using namespace std;
main()

 int a = 21;
 int b = 10;
 int c ;
 c = a + b;
 cout << "Line 1 - c 的值是 " << c << endl ;
 c = a - b;
 cout << "Line 2 - c 的值是 " << c << endl ;
 c = a * b;
 cout << "Line 3 - c 的值是 " << c << endl ;
 c = a / b;
 cout << "Line 4 - c 的值是 " << c << endl ;
 c = a % b;
 cout << "Line 5 - c 的值是 " << c << endl ;
 c = a++;
 cout << "Line 6 - c 的值是 " << c << endl ;
 c = a--;
 cout << "Line 7 - c 的值是 " << c << endl ;
 return 0;

请同学们自己输入代码测试,了解并学习运算符优先级。
结果:

Line 1 - c 的值是 31
Line 2 - c 的值是 11
Line 3 - c 的值是 210
Line 4 - c 的值是 2
Line 5 - c 的值是 1
Line 6 - c 的值是 21
Line 7 - c 的值是 22

三.数据类型转换

??在出现多个不同类型的数据同时执行运算时,通常会出现数据类型转换,而数据类型转换通常分为系统自动执行的隐含转换程序员所执行的强制转换(显式转换)。

隐含转换

??系统为了保证数据的一致性与可靠性,如果参与运算的两个操作数类型一致,操作系统会自动对数据进行转换。转换的基本原则是将低类型的数据转换为高类型数据

强制转换

??强制转换包含6种类型转换语法:
??1.类型说明符(表达式)
??2.(类型说明符)表达式
??3.const_cast<类型说明符>(表达式)
??4.dybamic_cast<类型说明符>(表达式)
??5.reinterpret_cast<类型说明符>(表达式)
??6.static_cast<类型说明符>(表达式)

以上是关于运算符及优先级的主要内容,如果未能解决你的问题,请参考以下文章

运算优先级及类型转换

运算符优先级记忆口诀及列表(转)

JS 操作符优先级及new

Java学习:运算符及优先级

python数据类型和运算符及运算符的优先级

python基础语法(运算符及优先级)