黑马程序员技术交流社区

标题: 2014.10.11学习小结之运算自增自减 [打印本页]

作者: 736010695    时间: 2014-10-11 16:18
标题: 2014.10.11学习小结之运算自增自减
本帖最后由 736010695 于 2014-11-10 10:49 编辑

运算的自增自减(没有自乘和自除)
#include<stdio.h>
int main()
{
    //自增自减的几种形式:
    int a=10;
    a=a+1;//结果是11
    a+=1;//也可以写成a=a+1,结果是12
    a++;//也可以写成a=a+1,结果是13
    ++a;//也可以写成a=a+1,结果是14
    a--;//也可以写成a=a-1,结果是13,还可以写成a-=1

    //在赋值运算中a++和++a的区别:
    int b;
    int a=10;
    b=a++;
    printf("b=%d\n,a=%d\n", b, a);
    /*输出结果是b=10,a=11,原因分析:在这里b=a++,是把a的值先付给b,所以b的输出结果是a最早定义的10,而后运算a++就是a=a+1,因为a之前定义的是10,这里a=a+1,输出结果就是a为11*/

    b=++a;
    /*这里的输出结果是a=11,b=11,因为++在a前面,运算时先计算++a,因为之前定义a的值是10,所以这里输出结果++a为11,然后把左边的值赋给右边b,那么b的值是11*/

    b=(a++)+(++a);
    /*这里输出结果a是12,b是22,原因分析:运算顺序是从左到右的,先从a++开始, 因为a在前面,所以(a++)走完能赋给b的值只有a原来的值10,但       是此时a应变成了11,继续往右走,到(++a),因为++在前面所以直接自增1,因为前面a应变成了11,这里在(++a)走完后为12(a的值此刻变成了           12),10+12=22,所以给b的值是22*/
}
小弟自学,自己总结,不对的地方还请多多指教!






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2