6.5.15 条件操作符 语法 1.conditional-expression: logical-OR-expression logical-OR-expression    ?    expression    :    conditional-expression 约束 2.第一个操作符应该具有标量类型. 3.对于第二和第三个操作数应该遵守下列规则之一: ——两个操作数都应该具有算术类型: ——两个操作数都具有相同的结构体和联合体类型 ——两个操作数都具有void类型: ——两个操作数都是…
6.5.17 逗号操作符 语法 1.expression: assignment-expression expression    ,    assignment-expression 语义 2.一个逗号操作符的左操作数被计算为一个void表达式:在其计算与右操作数计算之间有一个顺序点.然后,右操作数被计算:结果是右操作数的类型与值[注:一个逗号操作符不产生一个左值.] 3.例  由语法所指示的,逗号操作符(在此子条款中描述)不能出现在一个逗号被用于分隔一个列表中项的上下文中(诸如函数的实参或初…
6.5.16 赋值操作符 语法 1.assignment-expression: conditional-expression unary-expression    assignment-operator     assignment-expression assignment-operator: 以下之一         =    *=    /=    %=    +=    -=    <<=    >>=    &=    ^=    |= 约束 2.一个赋值操作…
6.5.6 加法操作符 语法 1.additive-expression: multiplication-expression additive-expression    +    multiplication-expression additive-expression    -    multiplication-expression 约束 2.对于加法,要么操作数都应该具有算术类型,要么其中一个操作数应该是一个指向一个完整对象类型的指针,而另一个应该具有整数类型.(递增等价于加1.) 3…
6.5.2 后缀操作符 语法 1.postfix-expression: primary-expression postfix-expression    [    expression    ] postfix-expression    (    argument-expression-listopt    ) postfix-expression    .    identifier postfix-expression    ->    identifier postfix-expres…
6.10.1 条件包含 约束 1.控制条件包含的表达式应该是一个整数常量表达式,除了:标识符(包括那些词法上与关键字相同的)被解析为以下所描述的:[注:因为控制常量表达式在翻译阶段4期间被计算,所以所有标识符要么是宏名,要么不是宏名——它们不会是关键字.枚举常量等等.]并且它可以包含单目操作符表达式形式 defined    identifier 或 defined    (    identifier    ) 上述形式将被计算为1,如果标识符当前被定义为一个宏名(即,如果它已被预定义,或者如…
6.5.9 相等操作符 语法 1.equality-expression: relational-expression equality-expression    ==    relational-expression equality-expression    !=    relational-expression 约束 2.要遵守下列规则之一: ——两个操作数都具有算术类型: ——两个操作数都是指向兼容类型的限定或非限定版本的指针: ——其中一个操作数是指向一个对象类型的一个指针,而另一…
6.5.5 乘法操作符 语法 1.multiplicative-expression: cast-expression multiplicative-expression    *    cast-expression multiplicative-expression    /    cast-expression multiplicative-expression    %    cast-expression 约束 2.每个操作数应该具有算术类型.% 操作符的操作数应该具有整数类型. 语义…
6.5.4 投射操作符 语法 1.cast-expression: unary-expression (    type-name    )    cast-expression 约束 2.除非类型名指定了一个void类型,否则该类型名应该指定原子的.限定的,或非限定的标量类型,并且操作数应该具有标量类型. 3.涉及到指针的转换,而不是由6.5.16.1所允许的限制,应该用一个显式的投射来指定. 4.一个指针类型不应该被转换为任一浮点类型.一个浮点类型不应该被转换为任一指针类型. 语义 5.在一…
6.5 表达式 1.一个表达式是操作符与操作数的一个序列,这些操作符与操作数指定了一个值的计算,或指派一个对象或一个函数,或是生成副作用,或执行上述操作的组合.对一个操作符的操作数的值计算顺序排在对该操作符的结果的值计算之前.[译者注:比如 + ) * ( - ); 对于上述表达式,就对于当中的 * 操作符而言,先计算乘法操作符左右两边的操作数的计算,最后再计算乘法操作结果. ] 2.如果在一个标量对象上的副作用相对于同一标量对象上的另一个不同副作用或是使用同一标量对象的值的一个值计算,没有为其…