打印
[产品应用]

C语言中一些令人震惊的结构

[复制链接]
622|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
AdaMaYun|  楼主 | 2023-12-16 14:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
C语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么?

int a = 5, b = 7, c;
c = a+++b;

考察点:

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

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 | 只看该作者
+++这个是不是跟优先级还有关系?

使用特权

评论回复
5
OKAKAKO| | 2023-12-19 10:13 | 只看该作者
LOVEEVER 发表于 2023-12-19 10:03
+++这个是不是跟优先级还有关系?

一般是++优先级大于+的

使用特权

评论回复
6
小小蚂蚁举千斤| | 2023-12-19 10:41 | 只看该作者
其实最好还是程序通俗易读比较好

使用特权

评论回复
7
中国龙芯CDX| | 2023-12-21 09:05 | 只看该作者
A++;与++A是不一样的,有一个先加后加的问题

使用特权

评论回复
8
星辰大海不退缩| | 2023-12-21 12:34 | 只看该作者
自增自减符号确实很重要

使用特权

评论回复
9
szt1993| | 2023-12-22 08:29 | 只看该作者
C语言学习还得看Cprimer

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

240

主题

1848

帖子

3

粉丝