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

当一个算术表达式中有一个变量的前添或者后加,用到的这个变量是原值还是加后的值

2014-01-14 
当一个算术表达式中有一个变量的前加或者后加,用到的这个变量是原值还是加后的值?例如:int x1,y3,z2Sy

当一个算术表达式中有一个变量的前加或者后加,用到的这个变量是原值还是加后的值?
例如:
  int x=1,y=3,z=2;
  System.out.println(y--/++x);      // 输出是 1
  
   System.out.println((z++)*3);    // 输出是6

我知道前加和后加在给另一变量赋值时的区别,前加是使用加1后的值,后加是使用原值

第一句y--后减语句为什么不是使用的原值3?
第二句z++后加是使用的原值2

能告诉下编译器处理这个问题的原理吗?

[解决办法]
你这输出是java函数吧?
不过我只从C++的编译器来讲,你y--/++x,使用的也是y之前的值,至于为什么为变成1,
这是因为3/2,整数相除不会有小数,小数直接去掉了,
不信你可以这样:


int x=1,y=3,z=2;
printf("%f\n", ((double)y--/++x));      // 输出是1.500000


热点排行