关于 i++ 和 ++i 的区别

 i++ 和 ++i 的使用分为两种情况:1、单独使用;2、放入表达式中使用。

1、第一种情况,单独使用时从实现的效果(即程序的运行结果)上看是等价的。

2、当放入表达式中使用,则有本质区别:

b = ++i; 前缀形式,等价于 i = i + 1; b = i;

b = i++; 后缀形式,等价于 b = i; i = i + 1;


i++ 是先使用后自加,在结束标志时才加上1(;和,和函数()都是结束标志);而 ++i 则是先自加后使用。

i++ 可以替换成数值,++i 可以替换成变量。

例如:

#include <stdio.h>

int main()

{

    int i = 2;

    num = (++i) + (++i) + (++i) + (++i);

    printf("%d", i);

    return 0;

}

其中num = 4+4+5+6=19;


#include <stdio.h>

int main()

{

    int i = 2;

    i = i * ((i++) + (++i));

    printf("%d", i);

    return 0;

}

先算括号内i++在结束时加1,因++i 所以i 变为3,i = 3 * (3 + 3) = 18,18再加1为19。


#include <stdio.h>

int main()

{

    int i = 2;

    i = (i++) + (++i) + (i++) + (++i);

    printf("%d", i);

    return 0;

}

先是前两个因++i 所以i 为3,经第四++i 后 i 为4,所以为3+3+3+4=13,最后13+1+1=15。


#include <stdio.h>

void func(int a, int b)

{

    printf("a = %d\n", a);

    printf("b = %d\n", b);

}

int main()

{

    int i = 2;

    func(++i, i++);

    return 0;

}

func(++i, i++) 从右向左计算,经过i++,i = 2,中间经过逗号加1,i = 3,再经过++i,成为4。所以a = 4, b = 2。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值