小编jay*_*ayd的帖子

C - printf的输出说明("%d%d \n",k = 1,k = 3);

如何解释下面代码的输出:

include <stdio.h>

int main(void) {
    int k;
    printf("%d %d\n",k=1,k=3);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Ideone Link

我的想法是1将分配给k变量然后1打印.同样3将分配给k和输出3.

预期产出

1 3
Run Code Online (Sandbox Code Playgroud)

实际产出

1 1
Run Code Online (Sandbox Code Playgroud)

我是从外推

int a;
if (a = 3) { 
    ...
} 
Run Code Online (Sandbox Code Playgroud)

等于

if (3) { 
    ... 
}
Run Code Online (Sandbox Code Playgroud)

请让我知道我哪里错了?

c printf function-calls variable-assignment sequence-points

5
推荐指数
1
解决办法
159
查看次数