C标准 - 逗号运算符语法

Wür*_*hen 4 c syntax comma comma-operator

根据C标准(和K&R),逗号运算符的语法如下:

expression:
    assignment-expression
    expression, assignment-expression
Run Code Online (Sandbox Code Playgroud)

但为什么这个陈述有效呢?

5+5, 1+1; 
Run Code Online (Sandbox Code Playgroud)

5 + 5和1 + 1不是赋值表达式,但C标准要求赋值表达式作为逗号运算符的操作数.

a3f*_*a3f 5

assignment-expressionconditional-expressionlogical-OR-expressionlogical-AND-expressioninclusive-OR-expressionexclusive-OR-expressionAND-expressionequality-expressionrelational-expressionshift-expressionadditive-expression这最终是⊃ additive-expression + multiplicative-expression.

所以不,5 + 5确实是ε assignment-expression.


⊃是"包含"关系.

  • 换句话说,语言形式语法中的符号必须按照语法中的定义进行解释.拼写所暗示的任何基于英语的解释充其量只是一个指导原则. (3认同)