--n和n-- ,++i和i++

- -n和n- -代表的意思都是n减一,但是也不小的区别,在循环中使用会有相差一次的现象

1:- - n的例子

#include<stdio.h>
  
int main()
{
        int n = 3;
        while(--n)
                printf("%d\n", n);
}

上面的while(- -n)可以拆分为下面语句,

1: n = n -1
2: while(n)
3:printf("%d\n", n);

这样的话n=3,循环2次

kayshi@ubuntu:~/code/Test$ ./a.out 
2
1

2:n- -的例子

#include<stdio.h>
  
int main()
{
        int n = 3;
        while(n--)
                printf("%d\n", n);
}

上面的while(n–)可以拆分为下面语句,

1: while(n)
2: n = n -1
3:printf("%d\n", n);

这样的话n=3,循环3次

kayshi@ubuntu:~/code/Test$ ./a.out 
2
1
0

3:for() 中的使用

++如果和其他语句组合的话,可以这样拆分
for循环的()中最后一个语句++i,可以放到每一次循环的最后,for循环其他语句执行完一遍,它再执行。

        for(int i = 0; i< 10; ++i)
                printf("%d\n", i);

可以等价与

        for(int i = 0; i< 10; )
        {
           printf("%d\n", i);
           ++i;
        }

所以在for中, ++i 和 i++ 对循环体中的语句来说是没有区别的

4:指针中的使用

        while(*src)
                *ret++ = *src++;

等价于

        while(*src) {
                *ret = *src;
                 ret++;
                 src++;
           }

总结: 如果运算++,–与其他运算组成复杂的语句。则需要拆分来看。

1:如果和while()组合,符号在前拆分后位于while之前,符号在后拆分后位于while之后。和其他运算公式组合,也采用相同的规则
2:如果处于for括号内部,则直接放在for循环体包含的所有语句的最后。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值