c语言如何理解 printf('%d,%d,%d",a++,a++,a++)

我是刚开始学c语言
很不明白下面的语句,会的给我讲讲吧 谢谢
语句是:
int a=1;
printf('%d,%d,%d",a++,a++,a++);
可如何理解
printf('%d,%d,%d",a++,a++,a++);

根据你的问题,下了一个程序如下,你知道程序运行的结果是怎样的吗?

main(){
int a=1;
printf("%d,%d,%d\n",a++,a++,a++);
printf("%d\n",a);
}

运行后的结果如下,你能明白吗?
3,2,1
4

这个语句是明白了会明白C语言里面两个难懂的东西:printf("%d,%d,%d\n",a++,a++,a++);

首先a++和++a是如何工作的:a++就是用a参与表达式的计算,然后把a+1的值存入a中;而++a相反,先加1在参与表达式的计算。

其次,函数里面的多个参数是表达式的时候,C语言是先计算后面的表达式的。

仔细理解我上面的两段话,你应该明白程序的输出结果了吧。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-07-07
printf('%d,%d,%d",a++,a++,a++);
编译错误.
应改为printf("%d,%d,%d",a++,a++,a++);
但是,这是C语言标准的未定义行为,结果不确定.
1,1,1
3,2,1
都是可以的.
第2个回答  2007-07-07
先打印出A的值:1,再使A加1,A变成2,然后打印A的值2,再使A+1,A变成3,所以最后打印结果为1,2,3
相似回答