DrWhiter 发表于 2021-7-21 17:21:28

关于printf函数和逗号运算符的问题

我试着运行下面的代码:#include <stdio.h>
int main()
{
        int x=3;int y=3;int z=1;
        printf("%d,%d,%d\n",(++x,y++),z+x+y+2);
        return 0;
}
输出结果如下:3,9,22
我知道逗号运算符的结果是最后一个表达式的结果,但如果不加括号,那么赋值操作将会先于逗号运算符执行。但我不明白输出的结果为何是这样,希望得到解答!

xiaosi4081 发表于 2021-7-21 17:24:35

看看吧:
http://c.biancheng.net/cpp/html/27.html

万千只cnm 发表于 2021-7-21 17:30:18

多了一个%d吧
如果是 printf("%d,%d\n",(++x,y++),z+x+y+2);
结果是 3 11那就是对的
不过还是会警告
你这么写没什么意义。。。

页: [1]
查看完整版本: 关于printf函数和逗号运算符的问题