趣文分享: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 ...
随机推荐
- NB-IOT关键技术分析
NB-IOT(NarrowBand Internet of Things,窄带IoT)是一种基于蜂窝的窄带物联网技术,支持低功耗设备在广域网的蜂窝数据连接.NB-IOT在物联网应用广泛,许多领域都充分 ...
- python机器学习实现线性回归
线性回归 关注公众号"轻松学编程"了解更多. [关键词]最小二乘法,线性 一.普通线性回归 1.原理 分类的目标变量是标称型数据,而回归将会对连续型的数据做出预测. 应当怎样从一大 ...
- 【CHOJ】磁力块
题意描述 磁力块 在平面内分布着 \(N\) 个磁力块,同时你的手上也有一块. 你一开始站在给定的坐标上,当磁力块之间满足互相吸引的条件时就可以吸引. 当你拿到新的磁石时你就可以用它来吸引更多的石头, ...
- 辨析:IIR(Infinite Impulse Response)与FIR(Finite Impulse Response)
IIR和FIR系统描述的是系统的抽样响应特性,其中$ x(n)=\delta(n) $ 举例:一个平均器的系统是FIR系统,因为它的抽样响应仅在变量n取某3个值的时候有值,是有限长的:一阶自回归模型由 ...
- 由python工作区导致的python代码能运行,但是PyCharm画红线的问题
原文:https://www.zhihu.com/question/63028700 PyCharm在遇到模块找不到时,会使用红色波浪线提醒开发者. Python有一个工作区的概念,在默认情况下,当你 ...
- K8S 搭建 Kafka:2.13-2.6.0 和 Zookeeper:3.6.2 集群
搭建 Kafka:2.13-2.6.0 和 Zookeeper:3.6.2 集群 一.服务版本信息: Kafka:v2.13-2.6.0 Zookeeper:v3.6.2 Kubernetes:v1. ...
- 超值干货 | 建议收藏:精美详尽的 HTTPS 原理图注意查收!
作为一个有追求的程序员,了解行业发展趋势和扩充自己的计算机知识储备都是很有必要的,特别是一些计算机基础方面的内容,就比如本篇文章要讲的计算机网络方面的知识.本文将为大家详细梳理一下 HTTPS 的实现 ...
- 管理机--Jumpserver由docker搭建
一.环境准备 使用Centos7.0及以上版本,(网要好哦) 二.安装docker 1,下载,安装,启动 docker yum -y install docker #安装docker ...
- 在java9+版本中,接口的内容和注意
1.成员变量其实就是常量,格式: [public] [static] [final] 数据类型 常量名称 = 数据值: 注意: 常量必须进行赋值,而且一旦赋值不能改变. 常量名称完全大写,用下划线进行 ...
- maven install 时 pom中skip test
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-suref ...