找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

C 语言和 C++、C# 的区别在什么地方?

admin 2019-2-11 13:42 128人围观 C++相关

作者:北京达内教育



  用枯燥无味的语言,大家很难去理解不同,那师姐就用三个例子告诉你它们的区    别在哪里吧!

    案例一:

任务:把大象放到冰箱里。

C:C语言是一个极其高冷的人,因此回答都是冷冷的:



我:你好C语言,我想把大象放到冰箱里,帮我做好不好?

C:好

我:那我们要怎么做呢?

C:猜

我:额......是不是应该先创造一只大象?

C:是

我:怎么创造呢?

C:猜

我只好去翻了一下文档,哦,malloc一块内存啊。

我:好的,我用malloc,申请一块空间放大象好不好?

C:好

我:额......大象怎么构造呢?

C:猜

我......去看了看大象的结构

我:好吧......我定义了一个大象的数据结构,接下来怎么做?

C:猜

我心里一阵说不出的感觉......

我:哦好吧,我创造一个冰箱,步骤应该和大象差不多。

C:嗯

我翻看了冰箱的结构,然后定义了一个冰箱的struct。

我:好了,冰箱构造出来了,怎么放呢?

C:哼

我......默默在Stack Overflow上输入"如何把大象放进冰箱 C"。

我:终于找到答案了,定义一个方法,把大象的鼻子放进去、眼睛放进去、耳朵放进去。OK,都放进去了。C,你输出一下看看吧。

C:烫烫烫烫烫烫烫

我:哈哈哈哈C你终于不高冷了

......

我:哎,你咋不说话了?C?你发烧了吗?

立刻一盆水倒上去。

结束。

C++:C++是一个知识渊博的孩子,相对年轻,也没那么高冷。

我:C艹,我们把大象放冰箱好吗?

C++:滚

说话的不高冷呢?

我:额我错了,亲爱的C++,我们把大象放冰箱好吧。

C++:好的么么哒,大象的数据类型已经有人定义好了,冰箱也有人定义好了,你需要分别构造一个哦。

我:好的。

于是我翻看了文档后知道了用new来构造

我:OK,亲爱的C++,我想构造一个大象。

C++:好的,构造大象的方法有13个,请问你选择哪一种呢?

我......

我:你介绍一下吧。

C++:OK,首先可以在栈上面构造,这么做的好处呢是可以方便资源管理,而且语法也好看一些,可以利用RAII,如果你不知道什么事RAII,你可以去cppreference上面查一下,当然你也可以在堆上构造,可以构造一只很大很大的大象,还有......

一个月过后,C++终于讲完了。我也长满了胡须。。。刮了胡子之后继续工作

我:好的,C++,我就在栈上面构造一只大象吧。

C++:你不爱我了。

我:???

C++:你都没有说“亲爱的”。

我。。。

我:好吧,亲爱的C++,我想简单构造一只大象。

C++:好的呢,你可以选择构造一只非洲象还是美洲象还是南极洲象,象的肤色是什么样子的你可以设定一下,象的屁股大小你可以设定一下,象的性别和性取向你看要什么......

我:我就想要一只简单的,默认的就好。

C++:好的,构造出来了一只,你可以选择怎么初始化它,有13种初始化方法,推荐使用最新的统一初始化。

我......

我:统一初始化

C++:好的,我们可以构造冰箱了。

我:好......

经过一个月的选择,终于构造出了冰箱。

C++:好的,冰箱提供了addElephant方法,可以直接使用哦。

我:哇太棒了,好的,我就用这个方法。

C++:这个方法提供了多种重载,可以拷贝,移动,也可以直接转发,省的在移入冰箱之前构造一个大象。

我:......你为啥不早说

C++:你为啥不早问。

我:就用移动的吧。

C++:OK,请用std::move将构造好的大象转为右值引用。

我一脸懵,但是还是照办。

我:好了

C++:OK,开始放入冰箱了哦,速度极快的呢。

突然

C++:报错了报错了,分子和原子不是可以转换的类型,大熊猫和爱迪生之间没有+运算符等1556项错误。

我......

我:网上找资料,说看最后一行就差不多了,好的看看。嗯,看起来是第31行出错了,错误是什么呢?报错信息啥也没说明白啊。随便改改吧。编译,运行。

C++:好的,已经将臀围12米,左臂长13米,右臂长14米,喜欢公大象,没有结婚生子,从小家教不错,熟读四书五经的非洲母大象放入橘黄色,五十米高,六十米宽,三百米厚,温度有零下三百度,制冷剂的牌子是湖澈牌,额定电压220V的冰箱里。

我......长舒了一口气。

C#:

我:我想把大象放进冰箱。

C#:好的主人,我爸爸微软已经写好了大象类,也写好了冰箱类,你只需new一下就好了。

我:OK,new好了,放入冰箱。

C#:好的,已经放入,使用了冰箱的拓展方法addElephant<>()方法。

我:嗯,你表现得很好,能不能放的稍微快点儿,刚刚C++放的就很快。

C#:为了您的安全,不能。

我:额......那我想调节一下大象耳朵的尺寸。

C#:对不起,不能调节。您可以设定大象的耳朵形状,已为您定义好多种耳朵形状,您还可以调整大象的肤色,已为您定义好多种肤色。

我:算了不调了,就这样吧。

C#:好的。如果您需要速度,或者需要对大象的每个细节进行把握,还可以去看看我的弟弟,C++/CLR,他可以完成您提出的这些功能。您也可以将他带到我这里来,我们可以一起工作的。你也可以把C++完成的工作导出到二进制形式,我可以直接使用的。

我:好的谢谢,不用了。

C#:好的,祝您生活愉快。

  案例二:

在遥远的地方,有三位大魔法师,吸引了许多学徒。

第一位大魔法师叫C,他是这样教学生的。
"火球术:"
"首先,把提前写好的符咒放在桌子上。"
"然后,把左手抬起来。"
"把右手抬起来。"
"让左手的位置下移3厘米。"
………
………
………
省略大约100行。

虽然这位魔法师的方法很麻烦。但是很快就能召唤出火球,同时以后重复这个步骤就可以召唤出火球。

第二位大魔法师叫C++,是C的徒弟。
他的火球术则是这样的。
"首先,用100个小时制作一张封装的,美观的,有注释的符咒,然后专门写一篇文档描述它的外表。"
"然后在上面写上火球术三个字。"
"扔出去。"
这位大魔法师的火球术使用很方便,只不过制作过程过于繁琐,并且有的时候可能会过十分钟才出现火球。

第三位大魔法师叫C#,据说是C和另一位姓J的大魔法师的不清不楚的产物。
他的火球术很简单,只要喊一声 火球! 就可以了。
只不过有一个致命的缺点。
如果离他的距离超过了5米,那所有的法术都会失效并且出现一大堆红色的写着error的神秘符咒,据说那是异次元的魔鬼的产物。

  案例三:

C就像一台引擎裸露在外,轮子变速箱刹车传动轴承都要自己装的“车”,如果你是DIY狂人喜欢自己造车,你会喜欢C的;

C++就像上面说的DIY狂人造出来的一台马力十足的跑车,包含了C的全部优点外加一个外壳。开起来是疯狂的野兽马力十足,但是不是谁都能驾驭了,稍有不慎就会车毁人亡;

C#就像一台综合性能非常好的轿跑,自动超速箱ABS防抱死空调音响一应俱全。让你轻松上路,怎么开怎么爽。但是你永远体会不到飙车的激情了,而且这车只能在特定公路开哦~






与其对未来充满迷茫,不如来达内学习一门好技术改变人生活。只要你想,梦想就一定会实现。快来找师姐学习啊~师姐背后是每年有着10万人选择的上市品牌教育机构;有着千人的教研团队;学习+就业保障,达内,你值得信赖。


2月开年占座训练营~快来预约吧!




2月开年占座训练营

班级里良好的学习氛围,

班主任每天的定时督促,

项目经理的实时问题解答,

教学老师带你进行项目实操,

既系统学习了知识,又拓宽了朋友圈。

你还有什么理由不来?

风里雨里,我在达内等你……

免责声明:C语言编程学习,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

— END —



往期精彩内容:


编程被纳入高考

达内就业明星

生活失控的人

厉害的编程人

网络营销技能

中年危机


12月喜报


收入上限


程序员泪崩


强制学编程

在北京工作的你

大学4年与达内4个月

AI博士年薪80万


编程语言榜


Python


IT行业







点击下方“阅读原文”预约2月开年占座训练营!

-------------------------------------------------------------------------
我们尊重原创,也注重分享,如若侵权请联系qter@qter.org。
-------------------------------------------------------------------------

鲜花

握手

雷人

路过

鸡蛋

yafeilinux和他的朋友们微信公众号二维码

微信公众号

专注于Qt嵌入式Linux开发等。扫一扫立即关注。

Qt开源社区官方QQ群二维码

QQ交流群

欢迎加入QQ群大家庭,一起讨论学习!

我有话说......