6.5.9 相等操作符

语法

1、equality-expression:

relational-expression

equality-expression    ==    relational-expression

equality-expression    !=    relational-expression

约束

2、要遵守下列规则之一:

——两个操作数都具有算术类型;

——两个操作数都是指向兼容类型的限定或非限定版本的指针;

——其中一个操作数是指向一个对象类型的一个指针,而另一个是指向一个限定或非限定版本的void的指针;或者

——一个操作数是一个指针,而另一个是一个空指针常量。

语义

3、==(相等)与!=(不等)操作符类似于关系操作符,除了它们它们具有更低的优先级。[注:因为优先级,a<b == c<d 结果是1,每当a<bc<d具有相同的布尔值时。]每个操作符产生1,如果指定的关系为真;产生0,如果指定的关系为假。结果具有int类型。对于任一对操作数,恰好其中一个关系为真。

4、如果两个操作数都具有算术类型,那么执行通常的算术转换。当且仅当两个复数的实部与虚部都分别相等,那么复数类型的这两个值相等。任意来自不同类型域的算术类型的两个值相等,当且仅当它们转换到由通常的算术转换所确定的(复数)结果类型的结果相等。

5、否则,至少其中一个操作数是一个指针。如果一个操作数是一个指针,而另一个是一个空指针常量,那么空指针常量被转换为该指针的类型。如果一个操作数是一个指向对象类型的一个指针,且另一个是指向限定的或非限定版本的void的指针,那么前者将被转换为后者的类型。

6、当前仅当两个指针都是空指针,两个指针都是指向同一对象的指针(包括一个指向一个对象的指针而另一个指向一个子对象的起始位置)或指向同一函数,两个指针都是指向同一数组对象超过最后一个元素的指针,那么这两个指针比较为相等。

7、出于对这些操作符的目的,一个指向一个对象的指针,该对象不是一个数组的一个元素,行为与指向长度为1的,将该对象类型作为其元素类型的数组的第一个元素一样。

ISO/IEC 9899:2011 条款6.5.9——相等操作符的更多相关文章

  1. ISO/IEC 9899:2011 条款6.5.17——逗号操作符

    6.5.17 逗号操作符 语法 1.expression: assignment-expression expression    ,    assignment-expression 语义 2.一个 ...

  2. ISO/IEC 9899:2011 条款6.5.16——赋值操作符

    6.5.16 赋值操作符 语法 1.assignment-expression: conditional-expression unary-expression    assignment-opera ...

  3. ISO/IEC 9899:2011 条款6.5.6——加法操作符

    6.5.6 加法操作符 语法 1.additive-expression: multiplication-expression additive-expression    +    multipli ...

  4. ISO/IEC 9899:2011 条款6.5.15——条件操作符

    6.5.15 条件操作符 语法 1.conditional-expression: logical-OR-expression logical-OR-expression    ?    expres ...

  5. ISO/IEC 9899:2011 条款6.5.5——乘法操作符

    6.5.5 乘法操作符 语法 1.multiplicative-expression: cast-expression multiplicative-expression    *    cast-e ...

  6. ISO/IEC 9899:2011 条款6.5.4——投射操作符

    6.5.4 投射操作符 语法 1.cast-expression: unary-expression (    type-name    )    cast-expression 约束 2.除非类型名 ...

  7. ISO/IEC 9899:2011 条款6.5.2——后缀操作符

    6.5.2 后缀操作符 语法 1.postfix-expression: primary-expression postfix-expression    [    expression    ] p ...

  8. ISO/IEC 9899:2011 条款3——术语、定义与符号

    3. 术语.定义与符号 1.对于此国际标准的意图,应用了以下定义.其它术语是在用斜体类型或一个语法规则左侧出现的地方定义.在本国际标准中所显式定义的术语不被假定为对其它地方所定义的类似术语的隐式引用. ...

  9. ISO/IEC 9899:2011 条款5——5.2.1 字符集

    5.2.1 字符集 1.两个字符集和它们相关联的依次顺序应该被定义:写在源文件中的集合(源字符集),以及在执行环境中被解释的集合(执行字符集).每个集合此外被划分为一个基本字符集,其内容由本子条款给出 ...

随机推荐

  1. 04 c++中的友元

    c++中的类具有封装性,类中的私有数据只有该类的成员函数可以访问,程序中访问类中的私有成员,必须通过对象来调用成员函数,但是频繁的调用会使运行效率降低. 为了解决上述问题,c++中加入友元机制,友元可 ...

  2. 大数据之路week07--day07 (Sqoop 从mysql增量导入到HDFS)

    我们之前导入的都是全量导入,一次性全部导入,但是实际开发并不是这样,例如web端进行用户注册,mysql就增加了一条数据,但是HDFS中的数据并没有进行更新,但是又再全部导入一次又完全没有必要. 所以 ...

  3. tensorflow API _ 1 (control_flow_ops.cond)

    该函数用来控制程序执行流,相当于if-else了import tensorflow as tffrom tensorflow.python.ops import control_flow_ops a ...

  4. SSM整合Dubbo登陆案例

    登陆案例 一.创建Service项目存放共同数据 1.1  创建实体类 private long id; private String loginName; private String userNa ...

  5. Web API系列(四) 使用ActionFilterAttribute 记录 WebApi Action 请求和返回结果记录

    转自:https://www.cnblogs.com/hnsongbiao/p/7039666.html 需要demo在github中下载: https://github.com/shan333cha ...

  6. 了解区块链&比特币

    https://www.bilibili.com/video/av45247943 假如有ABCD四个比特币交易者,其中A交易给B者10个比特币(BTC),而这条信息要广播给其他所有的交易者知道. 假 ...

  7. RookeyFrame 迁移 线下Model 新增属性 迁移 到数据库

    在类库 Rookey.BusSys.Operate(类库) -> InitOperate.cs(类)  -> App_Start(方法) 添加代码(举例): ToolOperate.Rep ...

  8. 阿里开源线上应用调试利器 Arthas的背后

    Arthas是一个功能非常强大的诊断工具,功能点很多,例如:jvm信息.线程信息.搜索类中的方法.跟踪代码执行.观测方法的入参和返回参数等等. 作为有追求的程序员,你不仅要知道它能做什么,更要思考它是 ...

  9. shell编程练习题

    求2个数之和 计算1-100的和 将一目录下所有的文件的扩展名改为bak 编译当前目录下的所有.c文件: 打印root可以使用可执行文件数,处理结果: root's bins: 2306 打印当前ss ...

  10. MAC OS 中mount nfs 报错问题.

    记一下 MAC OS 中mount nfs 报错问题. 环境和配置文件 NFS 服务端 Ubuntu 安装 apt install nfs-kernel-server 服务端的配置文件 cat /et ...