概述
在笔试的时候,问了这样一道选择题:
int main()
{
int x=1;
int y=2;
int z=3;
printf("%d,%dn",x,y,z);
return 0;
}
有这样几个选项:
A. 1,2,3 B.1,2 C . 1 D.编译错误
答案是:B
当时虽然回答正确,但是总觉得对printf的输出很是模糊,仔细查阅了相关资料发现还是需要注意的!
先声明下,以下编译都是在VC++6.0中运行的结果:
先来看下面一段代码:
int main()
{
int x=1;
printf("%d,%dn",++x,x++);
printf("%dn",x);
return 0;
}
结果是多少呢?
答案是:2,1
3
为什么呢?
要注意一点:因为printf函数的计算是从右向左进行的,而输出是从左向右进行的!
printf("%d,%dn",++x,x++);
运算过程:
从右向左:
1. x++ 得到1(x=1,后加1在整条语句执行完才进行)
2. ++x 得到2(x=2,先加1,后使用)
printf先输出 2,1
最后计算一次后运算x=3
printf输出 3
如果还是不清楚,可以看下面的两个例子的输出结果:
int main()
{
int x=1;
printf("%d,%dn",x,x++);
printf("%dn",x);
return 0;
}
输出结果:1,1
2
int main()
{
int x=1;
printf("%d,%dn",x,++x);
printf("%dn",x);
return 0;
}
输出结果:2,2
2
最后
以上就是冷艳玫瑰为你收集整理的printf函数输出的全部内容,希望文章能够帮你解决printf函数输出所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复