关于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)相反,
为什么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)相反,
为什么printf("%d %d %d",item1,item2,item3)从作向右
而printf("%d %d %d",n,n++,n*n)相反,
都是从右向左算的
记住这一点
在c中
----------------解决方案--------------------------------------------------------