当前位置: 代码迷 >> C语言 >> 一个关于i,i++,i++的、连续输出问题
  详细解决方案

一个关于i,i++,i++的、连续输出问题

热度:182   发布时间:2006-10-19 10:41:56.0
一个关于i,i++,i++的、连续输出问题
#include<stdio.h>
int i;
i=1;
printf("%d,%d,%d",i,i++,i++);
这个程序的结果是3,2,1。但弄不明白其中的原因。求教!!
搜索更多相关的解决方案: 输出  

----------------解决方案--------------------------------------------------------
如果改成
#include <stdio.h>
main()
{
int a,b,c ,i=1;
a=i;
b=i++;
c=i ++;
printf("%d,%d,%d",i,i++,i++);
printf("%d,%d,%d ",a,b,c);
}
又如何理解呢?

----------------解决方案--------------------------------------------------------
以下是引用huzi00008在2006-10-19 10:41:56的发言:
#include<stdio.h>

int i;

i=1;

printf("%d,%d,%d",i,i++,i++);

这个程序的结果是3,2,1。但弄不明白其中的原因。求教!!

printf("%d,%d,%d",i,i++,i++); /*是从右向左扫描,那么第三个就还是1,再加1,第二个就是2,加1,第一个就是3了*/


----------------解决方案--------------------------------------------------------
以下是引用huzi00008在2006-10-19 10:47:47的发言:
如果改成

#include <stdio.h>

main()

{

int a,b,c ,i=1;

a=i;

b=i++;

c=i ++;

printf("%d,%d,%d",i,i++,i++);

printf("%d,%d,%d ",a,b,c);

}

又如何理解呢?

第一个printf()如上所讲的原理一样,只不过i的值是3而已;
----------------解决方案--------------------------------------------------------
能详细些吗?还是有些懵懂
----------------解决方案--------------------------------------------------------
编译程序是从右到左开始编译的,所以就为3,2,1了
----------------解决方案--------------------------------------------------------
谢谢二位
----------------解决方案--------------------------------------------------------

  相关解决方案