[产品应用] C语言中一些令人震惊的结构

[复制链接]
997|8
 楼主| AdaMaYun 发表于 2023-12-16 14:23 | 显示全部楼层 |阅读模式
C语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么?

  1. int a = 5, b = 7, c;
  2. c = a+++b;

考察点:

这个问题将作为这个测验的一个愉快的结尾。不管你相不相信,上面的例子是完全合乎语法的。问题是编译器如何处理它?水平不高的编译作者实际上会争论这个问题,根据最处理原则,编译器应当能处理尽可能所有合法的用法。因此,上面的代码被处理成:

  1. c = a++ + b;


因此, 这段代码持行后a = 6, b = 7, c = 12。

如果你知道答案,或猜出正确答案,做得好。
如果你不知道答案,我也不把这个当作问题。我发现这个问题的最大好处是这是一个关于代码编写风格,代码的可读性,代码的可修改性的好的话题。

jf101 发表于 2023-12-19 09:53 | 显示全部楼层
其实代码还是具有可读性比较好,炫技并不好!
 楼主| AdaMaYun 发表于 2023-12-19 09:59 | 显示全部楼层
++就是自加1
LOVEEVER 发表于 2023-12-19 10:03 | 显示全部楼层
+++这个是不是跟优先级还有关系?
OKAKAKO 发表于 2023-12-19 10:13 | 显示全部楼层
LOVEEVER 发表于 2023-12-19 10:03
+++这个是不是跟优先级还有关系?

一般是++优先级大于+的
小小蚂蚁举千斤 发表于 2023-12-19 10:41 | 显示全部楼层
其实最好还是程序通俗易读比较好
中国龙芯CDX 发表于 2023-12-21 09:05 | 显示全部楼层
A++;与++A是不一样的,有一个先加后加的问题
星辰大海不退缩 发表于 2023-12-21 12:34 | 显示全部楼层
自增自减符号确实很重要
szt1993 发表于 2023-12-22 08:29 | 显示全部楼层
C语言学习还得看Cprimer
您需要登录后才可以回帖 登录 | 注册

本版积分规则

308

主题

2692

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部