A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 736010695 中级黑马   /  2014-10-11 16:18  /  748 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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*/
}
小弟自学,自己总结,不对的地方还请多多指教!

评分

参与人数 1技术分 +1 收起 理由
星河鹭起 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马