引言:在代码书写中,运算符的使用必不可少的,就像我们学习小学数学时使用的+,-,*,/,这四个也是数学中的运算符,我们也曾学过口诀:先乘除,后加减,就便是四则运算的优先级,而代码语句中,那么多的运算符,是不是也应该有优先级呢?
一.运算符 二.优先级 三.数据类型转换
在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(表达式)
转载于:https://www.cnblogs.com/Drac/p/11517835.html