趣文分享:C 语言和 C++、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++的学习裙【 712,284,705】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
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 语言和 C++、C# 的区别在什么地方?的更多相关文章
- 趣文分享:有人将Android开发环境比作女人
(一个移动开发者大会活动推荐:http://www.eoeandroid.com/thread-303943-1-1.html) 趣文分享:有人将Android开发环境比作女人 在日常开发工作中,我们 ...
- c语言和c++有什么区别
差不多是win98跟winXP的关系.C++是在C的基础上增加了新的理论,玩出了新的花样.所以叫C加加. C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输 ...
- c语言和java以及安卓和苹果
苹果手机是本地,没有中间环节,速度快,基于Linux系统 安卓是通过虚拟机,影响速度 就像c语言和java c适用于架构小的地方,因为直接编译运行 而java用于架构比较大的地方,启动慢,启动之后效率 ...
- C语言和C++篇
C语言和C++篇 基本上所有主流的编程语言都有String的标准库,因为字符串操作是我们每个程序员几乎每天都要遇到的.想想我们至今的代码,到底生成和使用了多少String!标题上所罗列的语言,可以看成 ...
- CHENGDU1-Python编程语言和PEP8规范
CHENGDU1-Python编程语言和PEP8规范 PEP8规范6条? 答:PEP8规范说白了就是一种规范,可以遵守,也可以不遵守,遵守PEP8可以让代码的可读性更高. 代码编排:---缩进,4个空 ...
- 从C,C++,JAVA和C#看String库的发展(一)----C语言和C++篇
转自: http://www.cnblogs.com/wenjiang/p/3266305.html 基本上所有主流的编程语言都有String的标准库,因为字符串操作是我们每个程序员几乎每天都要遇到的 ...
- 聊聊C语言和ABAP
这个公众号之前的文章,分享的都是Jerry和SAP成都研究院的同事在工作中学到的一些知识和感受.而今天这篇文章,写作的由来是因为最近我又参与了SAP成都数字创新空间应聘者的面试,和一些朋友聊了一些关于 ...
- IOS-2-C语言和Objective-C语言衔接学习资料
前言:在IOS学习中.通常会先学习一周的C语言,两周的Objective-C语言,这是今后开发的最基础最重要的部分,以下给大家分享一下培训课上的精简资料: C语言和Objective-C语言衔接学习资 ...
- 【翻译】Scriban README 文本模板语言和.NET引擎
scriban Scriban是一种快速.强大.安全和轻量级的文本模板语言和.NET引擎,具有解析liquid模板的兼容模式 Github https://github.com/lunet-io/sc ...
随机推荐
- 1.DRF初始化
1.DRF框架的8个核心功能 1.认证(用户登录校验用户名密码或者token是否合法) 2.权限(根据不同的用户角色,可以操作不同的表) 3.限流(限制接口访问速度) 4.序列化(返回json) ...
- 跟我一起学Redis之Redis配置文件啃了一遍之后,从尴尬变得有底气了
前言 秋高气爽的一天,那时候年轻帅气的我正在参照着搜索引擎写代码,迷之微笑般的敲着键盘(又从搜索引擎上找到代码案例啦),突然领导在小隔间里传来了呼唤声,然后有了以下场景: 领导:小Z,你过来一下: 当 ...
- python模块导入(包)
模块 关注公众号"轻松学编程"了解更多. 1.1. 模块的概述 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里的代码就会越来越长,越来越不容易维护. 为了编写可维 ...
- Redis中的一致性哈希问题
在说redis中的哈希(准确来说是一致性哈希)问题之前,先来看一个问题:为什么在分布式集群中一致性哈希会得到大量应用? 在一个分布式系统中,要将数据存储到具体某个节点,或者将来自客户端的请求分配到某个 ...
- docker容器与宿主机的数据交互
在生产环境中使用 Docker ,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作. 方式一.Docker cp命令 docker cp :用于容器与主机之间 ...
- svg究竟是什么?
svg究竟是什么? 1 要点 要点1:svg与jpg/png等格式的用途完全不同,不可相提并论,没有可比性,不可互相替代. 要点2:日常生活中,我们用相机拍摄自然景象得到的照片和视频,能且只能用jpg ...
- 程序人生|从网瘾少年到微软、BAT、字节offer收割机逆袭之路
有情怀,有干货,微信搜索[三太子敖丙]关注这个不一样的程序员. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的系列文章. ...
- 深入IOC及其启动原理
IOC总结 1. IOC概述 三个问题: IOC是什么 为什么用它 怎么用 1.1 是什么? 两个概念:控制反转,依赖注入 来看一下传统的干活方式:在对象单一职责原则的基础上,一个对象很少有不依赖其他 ...
- sublime中插件
AllAutocomplete Emmet
- 80386学习(一) 80386CPU介绍
一.80386CPU介绍 Inter80386CPU是Inter公司于1985年推出的第一款32位80x86系列的微处理器.80386的数据总线是32位的,其地址总线也是32位,因而最大可寻址4GB的 ...