i++与++i(2)

在C语言中,`i++` 和 `++i` 是两种不同的自增运算符。

 `i++` 是后缀自增运算符,它首先返回 `i` 的值,然后再将 `i` 的值加1。
 `++i` 是前缀自增运算符,它首先将 `i` 的值加1,然后再返回新的值。

#include<stdio.h>
void main()
{
int i = 1;

int k1 = i++;   // k1 被赋予 i 的当前值(1),然后 i 自增为 2
printf("%d\n",k1); // 输出 k1 的值,即 1

printf("%d\n",i); // 输出 i 的值,即 2

printf("%d\n",i++); // 输出 i 的值,即 2,然后 i 自增为 3

int k2 = ++i; // k2等于4
printf("%d\n",k2);

i=10;
printf("一%d\n",k1);//k1等于1
printf("%d\n",i); //i等于10
}

printf("一%d\n",k1);的值为什么是1不是10?


在代码中:
int k1 = i++; // k1 被赋予 i 的当前值(1),然后 i 自增为 2
printf("%d\n",k1); // 输出 k1 的值,即 1
printf("%d\n",i); // 输出 i 的值,即 2

这里 `k1` 被赋予了 `i` 的当前值,即 1。之后 `i` 自增为 2,但 `k1` 的值不会改变,因此 `printf("%d\n",k1);` 仍然输出 1。

至于 `printf("一%d\n",k1);`的值为什么是1不是10?,因为 `k1` 的值在之前被初始化为 1,并且没有被改变,所以这里输出的值也是 1。`i` 的值被设置为 10 与 `k1` 的值无关,`k1` 仍然是之前赋值时的那个值(1),直到你改变 `k1` 的值或者它被重新赋值。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值