关于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
我知道逗号运算符的结果是最后一个表达式的结果,但如果不加括号,那么赋值操作将会先于逗号运算符执行。但我不明白输出的结果为何是这样,希望得到解答! 看看吧:
http://c.biancheng.net/cpp/html/27.html
多了一个%d吧
如果是 printf("%d,%d\n",(++x,y++),z+x+y+2);
结果是 3 11那就是对的
不过还是会警告
你这么写没什么意义。。。
页:
[1]