i++与i--详解(C++)

自增++x;先自增1,再运算
       x++;先运算,再加一
x++和++x都相当于x=x+1;

例1.main()
{
    int i=8;
    printf(" %d",++i);//此处i+1后,输出i=9
    printf(" %d",--i);//由上一行运算后为9,又经运算减1,后再输出,故输出结果8

    printf(" %d",i++);//=8输出后,i再加1,故此处结果输出任然是8

    printf(" %d",i--);//上一运算i+1后得9,后输出9,然后再减1得到下一运算,故该行结果为任然为9

    printf(" %d",-i++);//上一运算i-1后得8,后输出-8,然后再加1得到下一运算,故改行结果为-8
    printf(" %d",-i--);//上一运算i+1后得9,后输出-9,然后再减1得到下一运算,故改行结果为-9

}
例2.#include <stdio.h> 
 int main() 
 { 
   //int m = 10, n1, n2; 
   //n1 = m++;先将m的值赋给n1,然后m再做自增运算,所以此时,n1=10,m=11; 
   //n2 = ++m ;先将m做自增运算,然后在将运算后的m值赋给n2,所以此时,n2=11,m=11; 
 
   int a = 10,b =10, c, d; 
   c = (a++) + (++a); 
   /*由上例n1=m++,n2=++m,m++=11可得出c=10+12;分析:前面括号所得值为10,而前面括号中的a经过自增运算后a的值为11,然后赋值给后面括号中的a,
   后面括号中的a经过自增运算后a的值为12,后面括号最后赋值为12;*/ 
   d = (++b) + (b++); 
   /*由上例n1=m++,n2=++m,++m=11可得出d=11+11;分析:前面括号所得值为11,而前面括号中的a经过自增运算后b的值为11,然后赋值给后面括号中的b,
   后面括号中的b先将值赋给后面括号,所以后面括号的值为11;*/ 
   printf("c=%d\nd=%d\n",c,d); 
   return 0; 
 } 
 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值