鱼C论坛

 找回密码
 立即注册
查看: 4101|回复: 7

为什么觉得小甲鱼不讲的题,都很精辟

[复制链接]
发表于 2013-7-21 10:04:30 | 显示全部楼层 |阅读模式
5鱼币
:'(:'(:'(求详细解释.....................

最佳答案

查看完整内容

首先解释下为什么几乎所有的C语言书都不解释这个问题: 翻开你的C语言书,如果那是一本不错的书,上面会很少或根本不提及VC6。为什么呢?因为C语言写的代码应该可以在很多不同的C编译器上执行,并获得相同的结果。 问题在于,不同的C语言编译器是由不同的厂家实现的,实现方式肯定不一样,为什么可以得到相同的结果呢?这要归功于C语言标准,任何C语言编译器厂家的产品都要符合这个标准。 那么C语言标准 ...
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-7-21 10:04:31 | 显示全部楼层

首先解释下为什么几乎所有的C语言书都不解释这个问题:
       翻开你的C语言书,如果那是一本不错的书,上面会很少或根本不提及VC6。为什么呢?因为C语言写的代码应该可以在很多不同的C编译器上执行,并获得相同的结果。
       问题在于,不同的C语言编译器是由不同的厂家实现的,实现方式肯定不一样,为什么可以得到相同的结果呢?这要归功于C语言标准,任何C语言编译器厂家的产品都要符合这个标准。
       那么C语言标准是不是要把C语言的方方面面都规定死呢?不是,其实该标准在很多方面都规定得很粗略。如int i=0;表达式(++i)+(++i)这个表达式的值在不同的C语言编译器上求值就可以不同,因为C标准对这一行为规定得非常的粗略,以至于各种求出不同值的方式都没有违背C语言的标准。
       所以,如果你要研究VC6里为什么该表达式会得到某个值,就不能以C语言标准为基础,而要以VC6这个编译器的实现为基础,肯定有很多人愿意通过汇编代码解释它的实现过程。
       问题在于,理解这个过程重要吗?一点都不重要!反过来,如果你理解得很透彻以后,经常写出这种只有VC6编译器才能正确理解的代码,那么就有很多C语言的高手认为你很菜。因为你的代码只能在一种特定的C语言编译器上得到正确的结果。这意味着找工作笔试的时候,只要人家看到你的这个代码,就可以直接决定不录用你了,因为在公司不一定用的是VC6的编译器。这样,如果录用你,就会给其它所有的C语言程序员带来困扰。
       最后,我个人认为,正常的C语言学习,应该以C语言标准为基础。就是说你写出来的C代码应该都是C标准上明确规定有意义的代码。这到题很经典,以前许多终生只用过VC6,又没有读过C语言标准的老师很喜欢出这样的题目。面对这样的题目,我觉得一个合格的学生,应该从C语言标准出发,引用标准,将所有符合标准的可能答案全部列出来,然后然老师自己去选择一个答案,这样的解答才是正确的。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-7-21 10:50:06 | 显示全部楼层
忘发图
R(C@4V}M`7%E6~{BGJV@M}7.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-7-21 11:58:53 | 显示全部楼层

你多试几个C语言的编译器,还会发现不同编译器结果都不一样。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-7-21 12:40:43 | 显示全部楼层
仰望天上的光 发表于 2013-7-21 11:58
你多试几个C语言的编译器,还会发现不同编译器结果都不一样。

这是VC++6.0的,求解释
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-7-21 13:45:34 | 显示全部楼层

这就是著名的老谭酸菜牛肉面了,这些东西不要钻下去,没有好处。
就是程序设计界的孔乙己六种茴字写法,建议你找找谭浩强批判之类的文章,其中专门的就批过这个例子。
这种例子在国外的经典C 著作中是不可能出现的,无论是C primer plus 还是C 语言入门经典 还是K&R 的C 程序设计。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-7-21 21:19:34 | 显示全部楼层
看这个就知道了。图片截取自《你必须知道的495个C语言问题》pdf版,抽空自己在网上找一下这本书,挺不错的
谭浩强的弱智练习题.PNG
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-7-21 23:13:56 | 显示全部楼层
hwl88618 发表于 2013-7-21 21:19
看这个就知道了。图片截取自《你必须知道的495个C语言问题》pdf版,抽空自己在网上找一下这本书,挺不错的

谢了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-18 20:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表