i++,i--,++i,--i执行过程


linux环境
#include <stdio.h>

main(){
  int i=8,j=8;
  int b,c,d,e,f,g;  
  
  printf("i=%d\n",i); 
  printf("i=%d,++i=%d,i++=%d,++i=%d,i++=%d,++i=%d,i--=%d,i++=%d\n",i,++i,i++,++i,i++,++i,i--,i++);
  //printf求值顺序虽是自右至左,但是输出顺序还是从左至右
  //i++是先拷贝后加1,++i是先加1后拷贝
  //每次i++拷贝都放在不同的位置,每次++i拷贝放在同一个位置
  //i++
  b=j; j=j+1;
  //i--
  d=j; j=j-1;
  //++i
  j=j+1;c=j;
  //i++
  f=j; j=j+1;
  //++i
  j=j+1;c=j;
  //i++
  g=j; j=j+1;
  //++i
  j=j+1;c=j;
  //i
  e=j;
    printf("i=%d,++i=%d,i++=%d,++i=%d,i++=%d,++i=%d,i--=%d,i++=%d\n",e,c,g,c,f,c,d,b);

}
vc6.0环境
#include <stdio.h>


main(){
  int i=8,j=8;
  int b,c,d,e,f,g,h,k,m;  
  
  //printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--);
  
  printf("i=%d\n",i); 
  printf("i=%d,++i=%d,i++=%d,++i=%d,i++=%d,++i=%d,i--=%d,i++=%d\n",i,++i,i++,++i,i++,++i,i--,i++);
  //printf求值顺序虽是自右至左,但是输出顺序还是从左至右
  //i++是只拷贝不执行,++i是先加1后,拷贝
  //每次都拷贝都放在不同的位置
  //
  //i++
  b=j; 
  //i--
  d=j; 
  //++i
  j=j+1;h=j;
  //i++
  f=j; 
  //++i
  j=j+1;k=j;
  //i++
  g=j; 
  //++i
  j=j+1;m=j;
  //i
  e=j;
    printf("i=%d,++i=%d,i++=%d,++i=%d,i++=%d,++i=%d,i--=%d,i++=%d\n",e,m,g,k,f,h,d,b);


}

这样结果是对的,但是内部运行不是这样?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值