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

昨天问题的答案:

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)

原文发表时间:2015-07-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小巫技术博客

A013-animator资源

643
来自专栏Python专栏

写了这么多年的python,tuple竟然是可变的?

1072
来自专栏LEo的网络日志

go语言性能建议

3368
来自专栏LanceToBigData

XML(一)XML大揭秘

前言 每天都要学习很多新的知识,比你厉害的程序员比你还努力,那你混的下这口饭吗?所以不抱怨,坚持!接下来给大家分享的是xml。可能很多做开发的都遇到过xml, ...

1829
来自专栏葡萄城控件技术团队

JavaScript中的内存泄漏以及如何处理

762
来自专栏程序员互动联盟

【编程基础第十一讲】代码如何写才最漂亮第一篇

存在问题: 好多小伙伴对编码的格式作用模糊,以为只要完成功能就行,其实这种观点是错误的,一定要重视代码规范,不然你哭的地都找不到。 如何实施: 良好的代码开发习...

2637
来自专栏Python小屋

Python花式编程案例集锦(9):sorted()函数中消失的cmp参数

明天开启全国巡讲Python模式,连续8场20天讲课,外加路上来回大约16天,这个假期有的忙了。所以接下来的一段时间里不一定能像以前更新的那么频繁,我尽量。

733
来自专栏海天一树

AtCoder入门练习题B--题解报告

一、题目 https://practice.contest.atcoder.jp/tasks/practice_2 二、分析 这里有三组测试用例。 第一组N =...

3058
来自专栏编程

Cgroup原理解释及部署实例(3)

Cgroup设计原理分析 CGroups的源代码较为清晰,我们可以从进程的角度出发来剖析cgroups相关数据结构之间的关系。在Linux中,管理进程的数据结构...

2008
来自专栏不止是前端

Vue:Vue中操作DOM方法

4209

扫码关注云+社区