++i与i++有什么区别?

宁静以致远_2020 2004-04-11 08:05:05
请问各位大侠++i与i++有什么区别?
...全文
79 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
MaxDD 2004-04-13
  • 打赏
  • 举报
回复
在表达式中:
++i:i先加1再取得i的值
i++:先取得i的值,再加1

单独运算:i++,++i是一样的结果。

效率?要这么细么??为什么?
我只知道++是自由向左结合的?符合逆波兰式?所以效率高?
没有必要这么细吧。
warren04 2004-04-12
  • 打赏
  • 举报
回复
晕,当然是++i效率高
  • 打赏
  • 举报
回复
那请问在for语句中,用++i效率高还是i++效率高呢?
ngqzmjmj 2004-04-12
  • 打赏
  • 举报
回复
c我不太熟悉
我估计c中的i取得都是这个表达是中所表示的i最终值
j=++i*i++ //(++i -->i=8) * (i++ -->先取i=8,这个表达式中i=8) 8*8=64
j=++i*++i//(++i -->i=8) * (++i -->先计算i+1的i=9再取i,这个表达式中i=9) 9*9=81

  • 打赏
  • 举报
回复
书上可没讲过这些哦!!!
ngqzmjmj 2004-04-12
  • 打赏
  • 举报
回复
在C和java中
如果i=7;
j=++i*i++;
结果都是输出i=9,j=64;
而当i=7;j=++i*++i;的时候,C输出的是i=9,j=81;而java输出的则是i=9,j=72;
为什么?!
这是在C版块争论了很久的一个话题,我一直在思考,就是不明白,还请高手指教!
i=7;
j=++i*i++ //(++i -->i=8) * (i++ -->先取i=8,再计算i+1最终i=9) 8*8=64
j=++i*++i//(++i -->i=8) * (++i -->先计算i+1的i=9再取i) 8*9=72
  • 打赏
  • 举报
回复
我运行过,在Java中,如果i=7,(++i)*(i++)和++i*i++结果都是64,i++*++i和(i++)*(++i)结果都是63,这是什么原因呢?
OnlyInJava 2004-04-12
  • 打赏
  • 举报
回复
搂主拜托查查书。
ps:别专牛角尖。晕!
  • 打赏
  • 举报
回复
在for(int i;i<100;i++)最好用++i,功能一样,但是效率却不一样。
 那个效率高,为什么呢?
htl 2004-04-12
  • 打赏
  • 举报
回复
++i:i先加1再取得i的值
例如:
int i=4;
int j=++i;
得到: j为5,i为5;
i++:先取得i的值,再加1.
例如:
int i=4;
int j=i++;
得到: j为4,i为5;

wzzxq 2004-04-12
  • 打赏
  • 举报
回复
在for(int i;i<100;i++)最好用++i,功能一样,但是效率却不一样
bluejing08 2004-04-12
  • 打赏
  • 举报
回复
我同意楼上所说的,但为什么J的运行结果是64呢?应该是72才对呀
viperasi 2004-04-11
  • 打赏
  • 举报
回复
JAVA里应该是这样的吧

j=(++i)*(++i)

j= a * b

a=8 而 b=9

所以。。。
Kosling 2004-04-11
  • 打赏
  • 举报
回复
大家看看这个
------
在C和java中
如果i=7;
j=++i*i++;
结果都是输出i=9,j=64;
而当i=7;j=++i*++i;的时候,C输出的是i=9,j=81;而java输出的则是i=9,j=72;
为什么?!
这是在C版块争论了很久的一个话题,我一直在思考,就是不明白,还请高手指教!
l1s2z3218 2004-04-11
  • 打赏
  • 举报
回复
二楼说的对
dlxu 2004-04-11
  • 打赏
  • 举报
回复
for语句括号里最后那个i++或++i都无所谓的
viperasi 2004-04-11
  • 打赏
  • 举报
回复
public class i
{
public static void main(String[] args)
{
int i=1;
int n;
//n=i++; //先把i的值付给n,然后i自加1;
n=++i; //i先自加1,然后把所得值付给n;
System.out.println(n);
}
}


看看就知道为什么了。


  • 打赏
  • 举报
回复
但我看书里面的for语句:for(int i;i<100;i++),要是用++i行吗?
aid666 2004-04-11
  • 打赏
  • 举报
回复
搂主拜托查查书。
sagittarius1979 2004-04-11
  • 打赏
  • 举报
回复
++i:i先加1再取得i的值
i++:先取得i的值,再加1.

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧