三个字楷书作品:这几个C语言程序的结果是多少啊?

来源:百度文库 编辑:高考问答 时间:2024/04/19 10:43:31
int i=3,k=3,j=3;
printf("%d\n",(i++)+(i++)+(i++));
printf("%d\n",(j++)+(j++)+(++j));
printf("%d\n",(++k)+(++k)+(++k));
输出的答案是多少啊?还有麻烦给上详细的解析啊~谢谢了~

没有意义的,不会有人考你这样的题目,因为会引起
编译器的二义性。也就是说不同编译器的解释不同,结果自然不同。
i=3 i++返回值为3,i修改为4
但是(i++)+(i++)+(i++)的第二个i++中的i是取第一个i++前的i值3呢
还是取第一个i++后的i值4就不好解释了,各有说词。
printf("%d\n",(++k)+(++k)+(++k)); 的解释相对唯一,基本不会出现
不同结果。
以上在vc中的运行结果是 9 10 16,至于其他编译器就不知道了。

9
10
16

以后这种问题你还是自己Run一下