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

昨天问题的答案:

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 条评论
登录 后参与评论

相关文章

来自专栏木子昭的博客

简单点! python匿名函数!

适用场景 懒得为函数起名 函数只用一次 好处 写起来方便 避免对函数命名空间的污染 用法 按照字典特定键排序 ? 对字典年龄进行排序 格式 lambda 参数 ...

26010
来自专栏数据结构与算法

22:因子分解

22:因子分解 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB描述 输入一个数,输出其素因子分解表达式。 输入输入一个整数...

31512
来自专栏伪君子的梦呓

题解 ~ 简单的a+b ~ C++ 做法

844
来自专栏aCloudDeveloper

算法导论第十八章 B树

一、高级数据结构   本章以后到第21章(并查集)隶属于高级数据结构的内容。前面还留了两章:贪心算法和摊还分析,打算后面再来补充。之前的章节讨论的支持动态数据集...

1876
来自专栏HTML5学堂

return语句的用法

HTML5学堂:在函数当中,存在着return语句,今天我们就主要讲解一下return在函数中的作用,也来提一提return的默认值是多少,还有就是return...

3405
来自专栏小樱的经验随笔

图的简单应用(C/C++实现)

存档: 1 #include <stdio.h> 2 #include <stdlib.h> 3 #define maxv 10//定义最大顶点数 4 ...

3234
来自专栏生信宝典

Python学习极简教程 (一)

Python 教程 欢迎来到Python的世界,本教程将带你遨游Python,领悟Python的魅力。本教程专注于帮助初学者,尤其是生物信息分析人员快速学会P...

31110
来自专栏十月梦想

HTML5之canvas画板介绍

• canvas 其实对于HTML来说很简单,只是一个标签元素而已,自己并没有行为,

892
来自专栏地方网络工作室的专栏

Shell 循环中实现展示进度百分比的脚本方法

Shell 循环中实现展示进度百分比的脚本方法 当我需要处理一个几万行的文件的时候,需要处理的时间是比较长的。我一开始的想法是,没处理一行,就输出一个 # 号。...

1997
来自专栏菩提树下的杨过

[复习]The C Programming Language 2nd 习题集(1.1-1.10)

买不起iPhone4,只能弄了一台iTouch4,想尝试一下iOS上的开发,虽然有monoTouch可用,但是这东西要399美金授权,换成RMB好几千块了,算了...

2006

扫描关注云+社区