下面哪个式子不正确?
int a = 4;
A、a += (a++);
B、(++a) += (a++);
C、a += (++a);
D、(a++) += a;

答案是 D、(a++) += a;

一个表达式,需要把结果赋值给等于号的左边,即“左值”。
对象指的是某个具体的变量,左值就是对象的地址。
a = a + 5这样的表达式,左值是a,a具有实实在在的内存地址以及数值。
A + B = a + 5;左值为“A + B”, A有值,B有值,但是A+B的值是由系统临时生成,在内存的临时区域存着,
你可以说就算是临时区也有地址,那有什么意义呢,不知道地址,不能赋值,唯一知道的只是它存在于临时的区域中。说白了就是没有显式的存储地址。看选项,D的左边是a++,
++a返回的是(a+1)这个变量。
a++返回的是a的一个副本,也就是一个临时对象,temporary object。
显然不能往临时变量里赋值,D错误。
现在看看别的选项。
A、a += (a++);
看到这种问题非常讨厌,中国式教育特有的SB题。
在C语言中,对于这种式子并没有严格的规定,所以具体的执行就落在了编译器上,
对于这种未定义式,例如,式子中到底是先赋值还是先自增,则完全取决于编译器——“ 两件事我都会去做,至于先做什么后做什么就是我自己的事情了。 ”如果把这种式子放在有严格定义的C#之类的语言中则很明确。现在以C语言的目光来看待:
如果一个式子很麻烦,可以拆分语句(前缀自增的放前面,后缀自增的放后面)
a+=(a++);
可以如下看待:
a += a;
a++;
所以答案是9
B、(++a) += (a++);
继续拆:
a++;
a += a;
a++;
答案是11
C、a += (++a);
a++;
a += a;
答案是10
总结:这种编译器相关的代码,并且没有任何附加说明地出成题目,完全是脑残行为,根本就不应该出现在教科书上,特别是初学者所接触的教科书。

[杂谈] 路遇一脑残题 - a++以及++a相关推荐

  1. 脑残式网络编程入门(八):你真的了解127.0.0.1和0.0.0.0的区别?

    本文由"小姐姐养的狗"原创发布于"小姐姐味道"公众号,原题<127.0.0.1和0.0.0.0地址的区别>,收录时有优化和改动.感谢原作者的分享. ...

  2. 脑残式网络编程入门(三):HTTP协议必知必会的一些知识

    为什么80%的码农都做不了架构师?>>>    本文原作者:"竹千代",原文由"玉刚说"写作平台提供写作赞助,原文版权归"玉刚说&q ...

  3. 为什么说减速带是脑残的设计?

    全世界只有3.14 % 的人关注了 爆炸吧知识 开车的谁没有压过减速带啊,当你以较高车速通过它时,剧烈振动会带给你强烈的刺激,有时候胃都感觉不舒服,加强你的不安全疑虑,促使你减速行驶. 简单来说,就是 ...

  4. 脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手

    转自即时通讯网:http://www.52im.net/ 1.引言 网络编程中TCP协议的三次握手和四次挥手的问题,在面试中是最为常见的知识点之一.很多读者都知道"三次"和&quo ...

  5. [置顶] 你总能看到的脑残问题

    写道 1) 企鹅问题: 一个女孩有一天给一个男孩做了一道菜,男孩吃完了,但是觉得味道怪怪的,于是他问那女孩,这是什么肉啊?女孩说,这是企鹅肉,男孩沉思了一会--痛哭起来,自杀了,为什么? 2) 跳火车 ...

  6. 《花千骨》为何被批“脑残”还能创造收视神话?

    更多:http://www.webyang.net/Html/web/article_158.html <花千骨>到底是部仙侠神剧,还是脑残粉的兴奋剂? 这已经成为各大论坛.贴吧里网友互掐 ...

  7. 黑客:iPhone的这些脑残功能逼我去越狱 苹果:乖,招安是我强项!

    2007年,当第一代iPhone出现时,雷锋网发现它还只是一个无法接收彩信,没有中文输入法,甚至连复制粘贴功能都没有的手机,对它的评价只能是三个字:弱!爆!了! 而今,iPhone不仅有让人眼花缭乱的 ...

  8. 脑残世界历险记(短篇科幻恶搞)——第一问 脑残是从来就有的吗?

    根据蒙钱小姐的转述,脑残族并非从来就有,也非遵循达尔文法则进化而来,他们是基因突变所产生的"异化人类",或者说"转基因人类". 没错,我们就是普通人类基因突变后 ...

  9. 热词解析:“脑残”英语怎么说?

    热词解析:"脑残"英语怎么说? --转自sl.iciba.com 整整20年前,一位在美国工作的英国人蒂姆-贝纳斯-李(Tim Berners-Lee)提出了构建信息管理系统的计划 ...

最新文章

  1. 16个matplotlib绘图实用小技巧!
  2. PHP递归复制文件夹的类
  3. java中methods方法_java中Class.getMethod方法
  4. 推荐一款多功能时间管理神器
  5. Robocode教程4——Robocode的游戏物理
  6. windows更新不支持的硬件_漫威复仇者联盟首次打折半价,GTA5最大更新即将到来,糖豆人将更新困难模式,赛博朋克2077首发不支持A卡光追...
  7. paip.URL参数压缩64进制
  8. java日期字符串排序_java字符串日期排序比较问题
  9. pinyin4j获取汉字正确的全拼和简拼
  10. JAVA发送HttpClient请求及接收请求完整代码实例
  11. 小米机型安全删除内置软件列表 miui12 miui13 可删除内置
  12. Frogs' Neighborhood POJ - 1659
  13. 硬盘克隆带linux系统,使用Linux dd命令作硬盘克隆
  14. 开放封闭原则_开放/封闭原则
  15. 对数 java_Java对数函数及Java对数运算
  16. 2017开发语言排行(本人是搞C#+javascript的)
  17. modbus测试软件
  18. 华师在线计算机考试登陆不上,华师在线首页登录网址
  19. 大工之星编程挑战赛第一周题解
  20. 亚马逊云科技——如何在中国市场破局?

热门文章

  1. 华为上半年销售收入1027亿元 同比增长5.1%
  2. 一篇来自火星的营养减肥技巧
  3. [摘录]遇见未知的自己(三)
  4. 【华为OD机试真题 python】任务最优调度 【2021 H2, 2022 Q1,Q2 考试题】
  5. 再谈进程—从入门到出家
  6. 黑马旅游网学习笔记之旅游线路详情(八)
  7. 想做知乎好物推荐?巧用百度关键词规划师免费为文章和回答高效引流
  8. 强缓存和弱缓存是什么
  9. Android 手机运行 JoyCon Droid 并且使用 Amiibo
  10. 固态硬盘+机械硬盘,ubuntu分区方案