i++ 与 ++i 的区别(我看一遍明白了)

一直以来,++ --语法浪费了太多人的时间。说句实在话,++ -- 在C语言中其实是一个很细节的语法,除了表达简练外,真的没有什么其它的好处了。

由于中国的C语言教程长期以来被谭浩强主宰,而谭教授又把++ --作为一个C语言重点来教,并增加了一些难点,把本来很简单的语法,搞得复杂无比! 

简单的来说,++i 和 i++,在单独使用时,就是 i=i+1。 

而 a = ++i,相当于 i=i+1; a = i; (先i = i + 1,再使用i的值)

而 a = i++,相当于 a = i; i=i+1; (先使用i的值,再i = i + 1)

如果实在搞不明白++ --怎么回事,那也不是什么天塌下来的事。

因为a=++i完全可以写成 i++; a=i。 

a=i++完全可以写成 a=i; i++。 

而且,这也是一种好的程序风格:++ -- 语句如非特殊需要,请单独一行使用。


eq1.

<span style="font-size:18px;">int i = 1;
int j = i++;
//此时i=2,j=1
if((i>j++)) 
{
//此时i=2,j=2
	if (i++ == j)//  会进入
	{
		i+=j;
	}
}
结果: i=5</span>

eq2.

<span style="font-size:18px;">int i = 1;
int j = i++;
//此时i=2,j=1
if((i>j++)) 
{
//此时i=2,j=2
	if (++i == j)//   不会进入
	{
		i+=j;
	}
}
结果: i=5</span>

eq3.

<span style="font-size:18px;">int i = 1;
</span><p>int j = i++;
//此时i=2,j=1
if((i>j++)&&(i++ == j))//  会进入
{
	i+=j;
}
结果: i=5</p>

eq4.
<span style="font-size:18px;">int i = 1;
int j = i++;
//此时i=2,j=1
if((i>j++)&&(++i == j))//  不会进入
{
	i+=j;
}
结果: i=3</span>


  • 24
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值