C语言 自增/自减问题笔记

自增/自减

分类

​ 前自增 ------- ++i
​ 后自增 ------- i++

前自增和后自增异同

​ 相同: 最终都是i+1
​ 不同: 前自增整体表达式的值是i+1之后的值
​ 后自增整体表达式的值是i+1之前的值

#include <stdio.h>
int main(void)
{
    int i,j,k,m;
    i = j =3;
    k = i++;
    m = ++j;
    

    printf("i = %d, j = %d, k = %d, m = %d\n", i, j, k, m);
    
    return 0;

}

/*
i = 4, j = 4, k = 3, m = 4

Process returned 0 (0x0)   execution time : 0.018 s
Press any key to continue.
*/	

为什么会出现自增

代码更精炼
自增速度更快

i++ 直接放到寄存器内处理

i+=1 数据从内存取出放入寄存器+1再将值赋给变量

学习自增要明白的几个问题

1.我们编程时应该尽量屏蔽掉前自增和后自增的差别

2.自增表达式最好不要作为一个更大的表达式的一部分来使用 或者说 i++和++i 单独成一个语句,不要把它作为一个完整的复合语句的一部分来使用

exp: int m = i++ + ++i + i + i++ // 这样写不但是错的而且不可移植

顺序点: ()、;、,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值