小编sky*_*ion的帖子

在C中,为什么包含逗号(,)运算符的表达式(Statement)的工作方式不同

我有一个简单的C代码和关于包含逗号(,)运算符的表达式的大混乱.

int main(){
    int i=0,j=11,c;
    c=i=j,++i;
    printf("c=%d i=%d\n",c,i);
    c=(i=j,++i);
    printf("c=%d i=%d\n",c,i);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码打印:

c=11 i=12
c=12 i=12
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 逗号(,)作为运算符的实际工作是什么?
  2. ++比更优先,=,为什么评价为表达做了左逗号?
  3. 如果表达式包含具有不同优先级的运算符,它将依赖于逗号(,)?
  4. 它表现得像分号的替代品(;)?

c operators comma operator-keyword

7
推荐指数
1
解决办法
609
查看次数

标签 统计

c ×1

comma ×1

operator-keyword ×1

operators ×1