永发信息网

我们知道,在for语句中i++等于i=i+1, 那么i++与i=i+1是否都是无条件等价,++i与i=i+1是否都是无条件等价

答案:3  悬赏:50  手机版
解决时间 2021-03-21 00:27
  • 提问者网友:箛茗
  • 2021-03-20 05:37
我们知道,在for语句中i++等于i=i+1, 那么i++与i=i+1是否都是无条件等价,++i与i=i+1是否都是无条件等价
最佳答案
  • 五星知识达人网友:走死在岁月里
  • 2021-03-20 07:03
i++是先进行其他运算再加1;
++i是先加1再进行其他运算;

#include<stdio.h>
void main()
{
int i=1;
printf("%d",i++);
int i=1;
printf("%d",++i);
}
运行一下程序你就明白了!呵呵
全部回答
  • 1楼网友:一把行者刀
  • 2021-03-20 08:50
i=7 k=12 因为++是右结合运算符,所以是先执行完k=(i++)+(i++)+(i++);(注意执行这一句时,i的值始终为4),然后i才加1的,有3个(++i),所以加3次,因为k=(i++)+(i++)+(i++);已经执行完了,所以i自加后不会影响到k的值,所以i=7,k=4+4+4+12; 如果是k=(++i)+(++i)+(++i);则是i先加1,计算第一个++i时,i=5,计算第二个++i时,i=6;然后计算k=(++i)+(++i)=6+6=12;然后再计算第三个++i;i=7;最后计算k=22+(i++)=12+7=19; ++和--都是右结合运算符,单独用(即单独作一条语句)时++i和i++没什么区别,但是在如果++i和i++是一个语句的一部分时,++i和i++就是有区别的了。
  • 2楼网友:深街酒徒
  • 2021-03-20 07:37
++在前先加后运算,++在后先运算后加 如 i=1,a=i++;完了后是a=1;i=2;而a=++i;完了后是a=2,i=2;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯