• 网站刚刚上线,难免有不足的地方,敬请谅解!欢迎提出宝贵意见!

  •    3年前 (2015-07-09)  入门指导 答疑解惑 |   2 条评论  53 
    文章评分 1 次,平均分 5.0

    昨天问题的答案:
    i += (++i)+(++i)+(++i)
    相当于 i = i + (++i)+(++i)+(++i);
    前置++操作符,先+1后再相加,最后i应该等于4*(i+3)

    问题一:
    int x=3,y;
    y=(++x)+(++x);

    输出:
    y=?
    这是怎么算的,有点混乱了,谁能说下,谢谢!

    解答:
    首先提出一个问题,如果改成y=(x++)+(x++); 结果会是什么?请大家可以自己试验。

    1.首先要弄清前置++和后置++的区别。
    在C++表达式中 ++x 表示先将x自加1再带入计算;
    x++ 表示先将x带入计算再自加1。

    2.第二个问题是操作符的优先级问题:=、++、+
    详情请看:C++的运算符优先级http://www.coderonline.net/?p=982

    这里只列出上面三个运算符的优先级顺序:
    ++ 高于 + 高于 =,所以计算应该从++开始,最后到赋值。
    首先明确x=3,这是原始值。先计算两个++x,然后计算+,最后赋值=
    第一个++x之后,x=4;第二个++x之后,x=5;计算完++x之后,两个x相加赋值给y。
    大家自己动手试一下吧。
    问题二:
    c++编译器给出的错误提示太长了,请问如何清晰看出哪里错了?
    这个问题太广泛了,没有说明是那个编译器,也没有说是那个平台。我只说说自己的一些比较通用的方法:
    1.如果能拷贝出来最好,拷贝到文本中查找起来更方便;
    2.如果能搜索也挺好的,直接搜索error,一般出错都会有这个关键字;
    3.双击出错信息,有的编译器双击某一行可以直接弹出包含此行信息的窗口的;
    4.有的编译器可以设置打印编译结果到文件,在文件查找错误很方便了吧。

    我暂时就想到这么多,以后如果遇到类似的问题再总结,希望能帮到大家。

    关注微信公众平台:程序员互动联盟(coder_online),你可以第一时间获取原创技术文章,和(java/C/C++/Android/Windows/Linux)技术大牛做朋友,在线交流编程经验,获取编程基础知识,解决编程问题。程序员互动联盟,开发人员自己的家。

    【答疑解惑】遇到多个前置++运算符怎么办?

     

    本文原始地址:http://www.coderonline.net/faq-encountered-more-than-one-previa-operator-do.html

    本站所有文章,除特别注明外,均为本站原创,转载请注明出处来自http://www.coderonline.net/

    否则保留追究法律责任的权利!

    关于
    自由

    发表评论

    表情 格式
    1. 烧脑,再遇到这种都是小菜了!

      angel 评论达人 LV.5 3年前 (2015-07-09) [0] [0]
    2. 以前不知道内部实现,看了这篇文章还是有帮助的

      ghost045 作 者 3年前 (2015-07-09) [0] [0]
    切换注册

    登录

    忘记密码 ?

    切换登录

    注册