关于C语言printf语句的疑问

来源:百度知道 编辑:UC知道 时间:2024/05/11 15:35:26
# include "stdio.h"
main()
{
int a;

a = 1;

printf( "%d\n", a = 4*a,5*4);

getch();

}
今天看到教程上说printf( "%d\n", a = 4*a,5*4);
这条语句的是从右边开始计算也就是 5 * 4 ,但是只有一个 " %d "
所以运行结果为 5 * 4 = 20,可是我自己按照上面的原样试了一次后,发现结果为
a = 4 * a =4.
和教程上说的不一样.我都搞不明白了.到底是哪出现了问题~!

可以说是一个书写的问题,printf( \"%d\\n\", a = 4*a,5*4);由于只有1个格式控制符,所以只输出第一个参数的值,由于书写问题
并没有把 a = 4*a,5*4看作为一个逗号表达式,而是看为2个参数了,因为参数使用逗号格开的,你该成这样printf( \"%d\\n\", (a = 4*a,5*4));
这样就把逗号表达式作为一个参数了,那么结果就如你分析的了