自增自减,逗号运算符

好 下面我们开始学习自增自减的运算 和逗号运算符号

自增、自减运算符:++ ,  --  (使变量的值增1或减1)
     结合率:自右至左。
      例如:  ++i  ,  --i     (先自增或自减)
         i++  ,   i--    (后自增或自减)

大家看肯定看不懂  现在就举几个例子如下

前置 ++i  --i  (先执行i+1或者i-1再是要i的值)

后置--i   ++i(先使用i的值,再执行i+1或者i-1)

例如j=3; k=++j;        //k=4 j=4

j=3;k=j++;            //j=4  k=3

j=3; printf("%d",++j);   //4,j=4

j=3; printf("%d",j++);  //3 j=4 

a=3;b=5;c=(++a)*b;  //c=20,a=4

a=3;b=5;c=(a++)*b;  //c=15,a=4


 
②结合率:自右至左

-i++             相当于 -(i++) 
i+++j           相当于 (i++)+j


例如:main()
            { int x=8,y,z;
               y=(++x)+(x++)+(++x);   
               z=(--x)+(x--)+(++x);
               printf(“y=%d,z=%d,x=%d”,y,z,x);
             }
则经过运算,y的值为30、z的值为33。而变量x的值为10。

自增自减的总结

 对于含有自增和自减运算的表达式,C语言系统一般按以下三步来完成计算
    ① 将所有先自增、自减运算抽出进行计算。
   ② 计算的结果带入表达式中,计算表达式的值。
   ③ 再将所有后自增、自减运算抽出进行计算。

  上例中的表达式y=(++x)+(x++)+(++x); C语言系统先进行两次x的自增计算,使x的值由8变为10。然后将10带入表达式中计算(即计算“x+x+x”),得结果30,并赋给变量y。最后再进行一次x的后自增计算,使变量x的值由10变为11。

注意:
        当自增、自减运算出现在函数的参数中时,它们不按该方法进行计算。在函数中的计算方法由C语言系统采用扫描格式决定。函数的参数中都避免使用自增、自减运算符。




3、逗号运算符和逗号表达式
        逗号运算符:  ,
  格式: 表达式1, 表达式2, 表达式3, , 表达式n
        优先级: 最低
        从左向右计算每个表达式的值,逗号表达式的值为表达式n的值。

例如:
                     y=(x=3,5+6,x+5) 逗号表达式的值为8。

            (a = 3,b = 5,b+ = a,c = b* 5),求逗号表达式的值?

答案:40。前两个表达式只是赋值,从第三个开始计算,b+=a,即b=b+a,即b=5+3,b=8,求最后一个表达式,c=b*5=8*5=40.因为逗号表达式的值是最后一个表达式的值,所以整个逗号表达式的值为40,其他各变量最后的值依次为:a=3,b=8,c=40


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值