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. generator 和yeild

    参考 https://www.cnblogs.com/xybaby/p/6322376.html 使用yield那么该函数就变成了一个生成器方法. def zheng(n,m): if n<m: ...

  2. 《CoderXiaoban》第八次团队作业:Alpha冲刺5

    项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 实验十二 团队作业8:软件测试与ALPHA冲刺 团队名称 Coderxiaoban团队 作业学习目标 (1)掌握软件测试基 ...

  3. 【Python】编程小白的第一本python(基础中的基础)

    一.变量 如果不知道变量是什么类型,可以通过type()函数来查看类型,在IDE中输入: print(type(word)) 另外,由于中文注释会导致报错,所以需要在文件开头加一行魔法注释 #codi ...

  4. 性能优化处理CPU快慢问题

    经常听到有人说磁盘很慢.网络很卡,这都是站在人类的感知维度去表述的,比如拷贝一个文件到硬盘需要几分钟到几十分钟,够我去吃个饭啦:而从网络下载一部电影,有时候需要几个小时,我都可以睡一觉了. 最为我们熟 ...

  5. 创建型模式(三) 抽象工厂模式(Abstract Factory)

    一.动机(Motivation) 在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作:同时,由于需求的变化,往往存在更多系列对象的创建工作. 如何应对这种变化?如何绕过常规的对象创建方法(ne ...

  6. GBDT(梯度提升树) 原理小结

    在之前博客中,我们对Boosting家族的Adaboost算法做了总结,本文就对Boosting家族中另一个重要的算法梯度提升树(Gradient Boosting Decison Tree, 以下简 ...

  7. es 启动问题

    max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] vim / ...

  8. 转发大神nginx配置详解

    序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作为HTTP服务器,也 ...

  9. 使用echarts生成海友网企业全国分布地图

    不分类别的效果 不同分类的分布效果图 从海友网获取各个企业名单保存进mysql cmfishhelper.py 从下列网址得到各个企业名片的网址保存进表cmfish cds = get_cds() h ...

  10. 数据库(以MySQL为例)

    一.数据库简介 数据库就是数据的仓库,用来按照特定的结构去组织和管理数据,有了数据库可以更加方便.便捷的操作需要保存的数据 不管是什么数据库,最终都是将数据保存到硬盘中,只是存储的格式不同于文本文件 ...