当前位置: 代码迷 >> C语言 >> 关于printf()
  详细解决方案

关于printf()

热度:435   发布时间:2007-02-06 13:38:36.0
关于printf()

请问printf()对于打印其参数有无顺序性

搜索更多相关的解决方案: printf  

----------------解决方案--------------------------------------------------------
当然有
一一对应
----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------

printf("%d %d %d",item1,item2,item3),对于这样的语句,先打印哪个item


----------------解决方案--------------------------------------------------------

item1


----------------解决方案--------------------------------------------------------
那么printf("%d %d %d",n,n++,n*n) 也是先打n,最后打n*n吗?
----------------解决方案--------------------------------------------------------

这个是按不同编译器不同,他计算的顺序会不同
我用的是gcc的,是从后面计算到前面,也就先计算n*n, 然后计算n++, 然后才是n
所以打印的时候 第一个数已经被加一了才打印 比如开始n = 5;
那么打印 6 6 25,仍然是按顺序打
----------------解决方案--------------------------------------------------------
为什么printf("%d %d %d",item1,item2,item3)从作向右
而printf("%d %d %d",n,n++,n*n)相反,
----------------解决方案--------------------------------------------------------
以下是引用zhaoyg在2007-2-6 13:53:49的发言:
为什么printf("%d %d %d",item1,item2,item3)从作向右
而printf("%d %d %d",n,n++,n*n)相反,

如果你的编译器是gcc,那么都是从右向左吖, 只是第一个printf里面几个变量无关,所以看不出变化.
第二个printf里面只1个变量,所以看得出变化
这个是根据编译器不同而不同的

但是打印仍然有顺序,从左到右打印


----------------解决方案--------------------------------------------------------
以下是引用zhaoyg在2007-2-6 13:53:49的发言:
为什么printf("%d %d %d",item1,item2,item3)从作向右
而printf("%d %d %d",n,n++,n*n)相反,

都是从右向左算的
记住这一点
在c中


----------------解决方案--------------------------------------------------------
  相关解决方案