《C++语言入门经典》一2.6 表达式

简介: 本节书摘来自华章出版社《C++语言入门经典》一书中的第2章,第2.6节,作者 郭鑫 顾彦玲,更多章节内容可以访问云栖社区“华章计算机”公众号查看

2.6 表达式

表达式由运算符、括号、数值对象或变量等几个元素构成。一个数值对象是最简单的表达
式,一个表达式可以被看做是一个数学函数。带有运算符的表达式通过计算将返回一个数值。
例如:

1 + 1 
3.1415926 
i + 1 
x > y100 >> 2 
j * 3

当表达式中有两个或多个运算符时,称表达式为复杂表达式,运算符执行的先后顺序由它
们的优先级和结合性决定。例如:

(X+Y)*Za*x+b*y+z

一个表达式的值的数据类型由运算符的种类和操作数的数据类型决定。
根据运算符的不同,带运算符的表达式可以分成算术表达式、关系表达式、逻辑表达式、
条件表达式和赋值表达式等几类。

2.6.1 算术表达式

算术表达式的一般形式如下:

表达式算术运算符表达式

算术表达式由算术运算符把表达式连接而成,其值的计算很简单,其值的数据类型按下
述规定确定:若所有运算符数量类型相同,则表达式运算结果的数据类型和操作数的数据类
型相同;若操作数的数据类型不同,就需要转换,表达式运算结果的数据类型取最高的数据
类型。

2.6.2 关系表达式

关系表达式的一般形式如下:

表达式关系运算符表达式

关系表达式一般只出现在三目运算符、if语句和循环语句的判断条件中。关系表达式的运
算结果都是逻辑型,只能取true或false。数值0表示false,非0代表true。

2.6.3 条件表达式

条件表达式的一般形式如下:

关系表达式?表达式:表达式

条件表达式的值和数据类型取决于?号前表达式的真假,若为真,则整个表达式的运算结
果和数据类型和冒号前的操作数相同;若为假,则整个表达式的值和数据类型和冒号后的操作

2.6.4 赋值表达式

赋值表达式的一般形式如下:

表达式赋值运算符表达式

赋值运算符的值和数据类型与第一个操作数对象值完毕后的值和数据类型相同。
由于赋值运算符的结合性是从右至左,因此可以出现连续赋值的表达式。

2.6.5 逻辑表达式

逻辑表达式的一般形式如下:

表达式逻辑运算符表达式

逻辑表达式用逻辑运算符将关系表达式连接起来。逻辑表达式的值也是逻辑型,只能取真
值true或假值false。
其中的表达式又可以是逻辑表达式,从而组成了嵌套的情形。例如,对于(a||b)&&c,
根据逻辑运算符的左结合性,也可写为a||b&&c 。逻辑表达式的值是式中各种逻辑运算的最后
值,以1和0分别代表“真”和“假”。
1)逻辑运算符两侧的操作数,除了可以是0和非0的整数外,也可以是其他任何类型的数
据,如实型、字符型等。
2)在计算逻辑表达式时,只有在必须执行下一个表达式才能求解时,才求解该表达式,
也就是说,并不是所有的表达式都被求解。例如,对于逻辑与运算,如果第一个操作数被判定
为“假”,系统将不再判定或求解第二个操作数;对于逻辑或运算,如果第一个操作数被判定
为“真”,系统将不再判定或求解第二个操作数。

相关文章
|
1月前
|
编译器 C++
C++系列七:表达式
C++系列七:表达式
|
2天前
|
缓存 编译器 API
NumPy与其他语言(如C/C++)的接口实践
【4月更文挑战第17天】本文介绍了NumPy与C/C++的接口实践,包括Python与C/C++交互基础、NumPy的C API和Cython的使用。通过案例展示了如何将C++函数与NumPy数组结合,强调了内存管理、类型匹配、错误处理和性能优化的最佳实践。掌握这些技能对于跨语言交互和集成至关重要。
|
9天前
|
编译器 C语言 C++
C++ lambda表达式
C++ lambda表达式
|
11天前
|
程序员 C++
C++语言模板学习应用案例
C++模板实现通用代码,以适应多种数据类型。示例展示了一个计算两数之和的模板函数`add<T>`,可处理整数和浮点数。在`main`函数中,展示了对`add`模板的调用,分别计算整数和浮点数的和,输出结果。
10 2
|
23天前
|
算法 安全 编译器
【C++ 17 新特性 折叠表达式 fold expressions】理解学习 C++ 17 折叠表达式 的用法
【C++ 17 新特性 折叠表达式 fold expressions】理解学习 C++ 17 折叠表达式 的用法
23 1
|
25天前
|
Java API 开发工具
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用(三)
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用
30 0
|
25天前
|
Java 数据处理 数据库
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用(二)
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用
34 0
|
25天前
|
存储 算法 Java
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用(一)
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用
33 0
|
30天前
|
Java 程序员 C#
C++ 编程入门指南:深入了解 C++ 语言及其应用领域
C++是一种由Bjarne Stroustrup开发的跨平台编程语言,以C语言为基础并添加了面向对象特性。它用于创建高性能应用,支持类和对象,提供高级系统资源控制。C++经历了多次更新,包括C++11、C++14、C++17和C++20。因其可移植性和代码重用,成为流行选择。学习C++简单有趣,与C、C#、Java有共通性。开始C++编程,可以从打印"Hello World!"的简单程序入手。关注微信公众号`Let us Coding`获取更多内容。
23 0
|
1月前
|
算法 程序员 编译器
C ++匿名函数:揭开C++ Lambda表达式的神秘面纱
C ++匿名函数:揭开C++ Lambda表达式的神秘面纱
59 0