首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

printf的参数执行顺序,由右至左?该如何处理

2012-04-19 
printf的参数执行顺序,由右至左?#include stdio.hint main(){int i8printf(%d\n,++i)i8printf(%

printf的参数执行顺序,由右至左?
#include <stdio.h>

int main()
{
  int i=8;
  printf("%d\n",++i);
  i=8;
  printf("%d\n",i--);
  i=8;
  printf("%d\n",i--);
  i=8;
  printf("%d\t%d\n",++i,i--);
  i=8;
  printf("%d\t%d\n",i--,i--);
  i=8;
  printf("%d\t%d\t%d\n",++i,i--,i--);
  printf("%d\n",i);
  return 0;
}

[解决办法]
这个与编译器的压栈顺序有关的,取决于编译器的实现,也有可能出现由左至右的情况。一个变量最好不要计算多次。
[解决办法]
也就是最好在外面计算好后,再到printf里打印。
[解决办法]
参数的为计算顺序是未定义行:从左到右、从右到左都合法, 先中间再两边也完全可以。但计算机为了处理方便应该只有从左到右和从右到左两种顺序,这样用栈处理起来速度也快。
[解决办法]
Microsoft Visual C++ 6.0中printf()是从右往左运算的.
但是不同的编译器可能有不同的顺序.
所以最好不要让printf()的个个参数有顺序关系.
自己去试试吧.自己搞的才会更清楚.

热点排行