汉扬编程 编程大纲 C++|简单清晰了解运算符及其优先级和结合性

C++|简单清晰了解运算符及其优先级和结合性

程序以数据及其操作为核心,包括数据表示、编码、输入、存储、处理、输出等。

C++|简单清晰了解运算符及其优先级和结合性

任何程序语言都离不开基本数据类型的语法机制。基本数据类型也是一种抽象数据类型,表明了数据分类的一个概念,数据分类一方面是模拟现实世界的需要,分为整形、浮点型、字符型,另一方面也是基于存储空间限制和操作效率的一种需要。基本数据类型定义了值域、内存空间长度的需要、编码解码方式、可以执行的操作等。

C++|简单清晰了解运算符及其优先级和结合性

基本数据类型定义的可以执行的操作的具体形式就是运算符。

运算符的实质是一个特殊的函数,在上下文中,相同的操作符对于不同的基本数据类型可能对应的是不同的操作。

运算符按其操作数的个数可以分为一元运算符、二元运算符、三元运算符,可以理解为这种特殊的函数的参数个数。类类型的运算符重载,也相当于是定义和实现一个特殊的函数。

1 运算符

2 优先级和结合性

运算符的优先级确定表达式中项的组合。这会影响到一个表达式如何计算。某些运算符比其他运算符有更高的优先级,例如,乘除运算符具有比加减运算符更高的优先级。

例如 x = 7 + 3 * 2,在这里,x 被赋值为 13,而不是 20,因为运算符 * 具有比 + 更高的优先级,所以首先计算乘法 3*2,然后再加上 7。

结合性是指具有相同优先级的操作符的运算顺序,从左至右运算称为左结合,从右至左运算称为右结合。

下表将按运算符优先级从高到低列出各个运算符及其结合性,具有较高优先级的运算符出现在表格的上面,具有较低优先级的运算符出现在表格的下面。

-End-

第七章、C语言中的其他运算符及优先级

上一章我们讲了基本的运算符,那么在C语言中还有一些其他的运算符,今天我们就来讲一讲C语言中还有那些运算符。

C++|简单清晰了解运算符及其优先级和结合性

1)、关系运算符

C++|简单清晰了解运算符及其优先级和结合性

C++|简单清晰了解运算符及其优先级和结合性

2)、逗号运算符

C++|简单清晰了解运算符及其优先级和结合性

逗号运算符就是将逗号前面的值作为结果赋值给后面的表达式,我说的可能不是太清楚,我们用一个例子来了解它:

C++|简单清晰了解运算符及其优先级和结合性

C++|简单清晰了解运算符及其优先级和结合性

3)、逻辑运算符

C++|简单清晰了解运算符及其优先级和结合性

C++|简单清晰了解运算符及其优先级和结合性

在这里插入一个表达式的概念:表达式是由运算符和操作数组合构成的。所以表达式可以是常数,也可以是变量或者是二者的组合,例如下面这些都属于表达式:

C++|简单清晰了解运算符及其优先级和结合性

-6 4+21 a*(b+c/d)/20

C++|简单清晰了解运算符及其优先级和结合性

等等,但是C语言的一个重要属性是每一个表达式都有一个值。

C++|简单清晰了解运算符及其优先级和结合性

还有一个概念是语句:语句是构造程序的基本成分。程序是一系列带有某种必需的标点的语句集合,一个语句是一条完整的计算机指令,在C语言中语句的结束以;(分号)标识。

C++|简单清晰了解运算符及其优先级和结合性

并且大多数语句有表达式构造而成。还是以列子说明吧:

好了语句和表达式的关系大概就这样了。

那么,我门再来说下运算符,有时候我们需要在判断条件的时候需要用到多个关系表达式,在结果满足多个条件的情况才执行程序。

假设有exp1和exp2两个表达式,通过两个表达式我们来了解下与或非对表达式的影响

· 假设exp1和exp2都为真的时候exp1&&exp2才为真(注意一下在&&运算符下,只要第一个表达式的结果是假的那么第二个表达式程序是不判断的,直接认为exp1&&exp2为假);

· 如果exp1或exp2都为真或者其中的一个表达式为真,那么exp1||exp2为真

· 如果exp1为假,那么!exp1就为真,如果exp1为真,那么!exp1为假。

我们举个列子:我想让用户输入一个整数,并且这个数如果大于1且小于10 则打印出来,我们怎么写程序呢。如果没有逻辑运算符我们可以这样写:

那么如果我们用了逻辑运算符怎么写呢??

是不是语句也变的简单多了。

4)、其他的赋值运算符

C语言有多个赋值运算符,最基本的就是上一章讲的\’=\’,那么还有那些赋值运算符呢?

我们用一个表来说明下:

5)、条件运算符(三目运算符)?:

这是一种简洁的表示if…else的方式,它的格式是exp?x:y,意思是如果exp为真,则执行x,如果exp为假则执行y。

6)、sizeof和指派运算符(type)

这两个运算符比较特殊sizeof的用法更像函数一些,sizeof运算符以字节为单位返回七操作数的大小,操作数可以是一个具体的数据对象也可以是一个类型,如果是类型操作数必须包括在圆括号中,例如:

(type)指派运算符,就是强制转换类型将(type)后面的值的类型强制转换成type的类型,例如:

好了,C语言里面的运算符差不多就这些了,还有些位运算符大家可以自己去了解下,那么他们的优先级是怎么样的呢,请看下表(该表来自百度百科\”运算符优先级\”):

本文来自网络,不代表汉扬编程立场,转载请注明出处:http://www.hyzlch.com/mianfei/6588.html

C语言编程求解:1到1000之间所有的素数

「C语言更新」C语言中如何来定义一个指针,并且对其进行初始化

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部