i++与++1

本文详细解析了i++和++i在编程中的不同行为。i++先返回当前值,再进行自增;而++i则立即自增并返回新值。理解这两种操作符的执行顺序对于掌握编程逻辑至关重要。

i++与++i

++ 优先级高于 =

i++ => i+=1;
	   return 未加1的值
		
    
++i => i+=1;
       return1后的值
		
`++i` `i++` 均为自增运算符,二者的区别主要体现在返回值和执行顺序上,在不同场景下各有适用之处。 ### 区别 1. **返回值不同**:`i++` 返回自增前的值,而 `++i` 返回自增后的值。例如在代码 `int i = 0; int a = i++; int b = ++i;` 中,`a` 会被赋值为 0(`i` 自增前的值),`i` 自增为 1 后,`b` 会被赋值为 2(`i` 自增后的值)[^1]。 2. **执行顺序不同**:`i++` 是先使用当前值,然后再进行自增操作;`++i` 是先进行自增操作,然后再使用自增后的新值。如在代码 `int i = 0; printf("%d", i++);` 会先输出 0,然后 `i` 变为 1;而 `int i = 0; printf("%d", ++i);` 会先将 `i` 变为 1,然后输出 1 [^1]。 ### 使用场景 1. **`i++` 的使用场景**:当需要先使用变量的当前值,再对变量进行自增时,使用 `i++`。例如在 `for` 循环中作为循环计数器,当循环体需要使用当前计数值时,如 `for (int i = 0; i < 5; i++) { System.out.println("this is for test " + i); }`,每次循环先输出 `i` 的当前值,然后 `i` 再自增 [^1][^2]。 2. **`++i` 的使用场景**:当需要先对变量进行自增,然后使用自增后的新值时,使用 `++i`。例如在某些算法中,需要先更新变量的值,再使用更新后的值进行后续计算 [^1]。 ### 代码示例 ```c #include <stdio.h> int main() { int i = 0; int a, b; a = ++i; // 此时 i 从 0 变为 1,a 被赋值为 1(i 的新值) b = i++; // 此时 i 是 1,b 被赋值为 1(i 的当前值),然后 i 递增变为 2 // 此时 i 为 2,a 为 1,b 也为 1 printf("此时a的值为%d\n", a); printf("此时b的值为%d\n", b); printf("此时i的值为%d\n", i); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值