i++和++i的一致性和区别性

众所周知,i++和++i都是i=i+1的意思,区别就在于i++是每次循环之后再自加1,而++1是在循环之前就自加1,也许这样还不是所有人都懂了,至少我刚接触的时候就没完全懂,下面用一个简单的例子说明一下

int _tmain(int argc, _TCHAR* argv[])
{
	int t,i,flag;

	for(i=2;i<=8;i++)
	{
		flag=1;
	    for(t=2;t<i;t++)
		{
			if(i%t==0)
				flag=0;
		}
	    if(flag==0)
			printf("%d",i);
	}
	return 0;
}

程序第一次运行到第三条语句的时候,此时的i和t都还没有赋值,运行第三条语句的时候,是先对i进行赋值,这时i=2,然后判断i是否满足i<=8,满足条件的情况下往下执行到第六条语句,先对t 赋值,t=2不满足t<i(此时i=2)的条件,所以要跳出t 循环回到i 的循环,这时候i 先自加1变成3,符合i<=8的条件,继续往下执行,再次来到t 的循环,同理先给t 赋值,使t=2,此时满足条件可以往下执行到第11条语句,执行完以后再返回到第八条语句,对t 自加1,此时t=3,然后判断条件不符合,结束循环,再回到第5条语句,继续i的循环,以此类推,就是for循环中i++的执行原理。如果把上面第5条和第8条语句中的i++和t++分别改为++i和++t,程序执行过程和结果会有变化吗?答案是没有!!!为什么没有区别呢,前面不是说i++和++i是有区别的吗?原因就在于前面所说的区别只是发生在i 值被引用的情况下,看下面的例子

int main()
{
	int i=0;
	cout<<i++<<endl;
	i=0;
	cout<<++i<<endl;
	return 0;
}

这个程序的最终输出结果就是

0

1



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值