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. Django之路——5 Django的模板层

    你肯能已经注意到我们在例子视图中返回文本的方式有点特别. 也就是说,HTML被直接硬编码在 Python代码之中. def current_datetime(request): now = datet ...

  2. TJOI2016 字符串

    字符串 佳媛姐姐过生日的时候,她的小伙伴从某东上买了一个生日礼物.生日礼物放在一个神奇的箱子中.箱子外边写了一个长为n的字符串s,和m个问题.佳媛姐姐必须正确回答这m个问题,才能打开箱子拿到礼物,升职 ...

  3. Oracle 按指定顺序排序

    select * from (select 'Nick' as item from dual union all select 'Viki' as item from dual union all s ...

  4. 黄杉杉 --java第七次作业

    题目1:创建一个柱体类,包含矩形对象.高和体积等三个成员变量,一个构造方法进行成员变量初始化,和计算体积.换底两个功能方法,在主类中输入长.宽.高,计算柱体体积,输入新的长.宽.高,创建新的矩形对象, ...

  5. VOJ 1049送给圣诞夜的礼物——矩阵快速幂模板

    题意 顺次给出 $m$个置换,反复使用这 $m$ 个置换对一个长为 $n$ 初始序列进行操作,问 $k$ 次置换后的序列.$m<=10, k<2^31$. 题目链接 分析 对序列的置换可表 ...

  6. C语言实验二——位运算

    问题 线性反馈移位寄存器 Linear feedback shift register(LFSR),是指给定前一状态,将该输出的线性函数再用作输入的移位寄存器.异或运算是最常见的单比特线性函数:对寄存 ...

  7. python 类 双下划线解析

    __getattr__用法:说明:这是python里的一个内建函数,当调用的属性或者方法不存在时,该方法会被调用调用不存在的属性调用不存在的方法

  8. JavaScript倒计时并刷新页面

    //10秒倒计时效果自动补全09,08等<div id="we">10</div>s <script> window.onload = func ...

  9. 【shell】1、变量的声明、引用及作用域

    shell程序 以文件形式存放==批量的Linux命令集合==,该文件能够被Shell解释执行,这种文件就是Shell脚本程序 通常由一段Liunx命令.Shell命令.控制语句以及注释语句构成 Sh ...

  10. PostgreSQL的 pg_hba.conf 配置参数详解

    pg_hba.conf 配置详解 该文件位于初始化安装的数据库目录下 编辑 pg_hba.conf 配置文件   postgres@clw-db1:/pgdata/9.6/poc/data> v ...