建议新人收藏使用!
前言
个人介绍:
大家好,欢迎来到C语言浮游塔,这里是设计人茅场晶彦(误)专栏作者渡枫,人称枫子哥。
初衷:
因为自己很多软件相关的朋友在大一初学C语言的就直呼“难上了天”,果断选择了“开摆”,随着一个学年的过去,我这些朋友中有不少挂科甚至重修C语言。
作为班上的C语言及数据结构的课代表,自己本身的C语言也学的蛮不错的,在闲暇时候,我也会写写小文章或者开直播给这些同学补补课,来帮助他们快速的掌握C语言的基本内容。
事实证明,效果不能说很强,但也不能说没有,至少让几个成功摆脱了重修的命运。(这也让我奶茶喝了个饱)
在这部新专栏里,我将结合自己平时学习的笔记以及网络上的优秀知识,制作出五六篇文章,让各位初入C语言的同学能够有一个大致的学习方向。
那么接下来,就让我们以爬塔的方式,去开始学习C语言吧!
Link Start!
目录
浮游塔第1层:编程界大爹,伟大的C语言的起源
在现在的信息化时代,编程似乎变成了一种风尚,一种潮流,如今十岁的孩子都已开始学习编程,直接领先在座的同学们十余年的时间,但这些学习的大多都是python、java、php等编程语言。
而对于我们这些计算机专业的,C语言大概是我们第一个认识,也是印象最为深刻的编程语言之一了。而且学习C语言真的很考验一个人的能力,学的好的那是真的牛逼,学的差那是真的拉跨。当然,这句话用在其他领域也是成立的。
接下来我们正式介绍一下C语言的发展史。
20世纪最伟大的实验室——贝尔实验室
贝尔实验室,位于美国新泽西州墨里山。毫不夸张的说,它曾经是地球上最伟大的实验室(没有之一),但由于AT&T发生巨变,贝尔实验室的命运也发生的改变,变得每况愈下。
但这也不能掩饰它曾经的辉煌,即使到现在,它平均每个工作日也能获得三项多的专利。
曾获得8项(13人)诺贝尔奖(其中7项物理学奖,1项化学奖)。截至2012 年,贝尔实验室共有有效专利 29190 项,出版物和会议论文400多篇,包括晶体管、通信卫星、电子数字计算机等许多重大发明对世界经济发展起到关键性作用。
为王(C语言)的诞生献上礼炮!
C语言诞生于1972年的贝尔实验室。是在BCPL语言以及B语言的基础上发展出的一门面向过程的高级语言,由于前身中有一个叫B语言,故在命名时便顺势称之为C语言。
创始人丹尼斯·里奇和肯·汤普森用它重写了第一个在DEC PDP-11计算机上实现的UNIX操作系统,在此后,随着UNIX的发展,C语言也在不断的完善,两者起到了相辅相成的作用。
也正是由于实现了UNIX的原因,使得二人在1983年荣获图灵奖,1998年又一起获得了美国国家技术奖章。
这两个奖项的含金量不言而喻,前者是计算机领域的国际最高奖项,后者则是美国总统对美国领先的创新者们授予的最高技术成就荣誉。
同属贝尔实验室的计算机先驱布莱恩·W.克尼汉是这样评价丹尼斯·里奇的:
牛顿说他是站在巨人的肩膀上,如今,我们都站在里奇的肩膀上
下图为关键开发者:丹尼斯·里奇
C语言标准
为了C语言的推广,许多的专家学者和硬件厂商联合组成了C语员言标准委会,并在之后的1989年,诞生了第一个完备的C标准,就是常用到的“C89”标准,后面又有了,90,99,11,不过截至2020年,最新的C语言标准为2018年6月发布的“C18”标准,而下一个版本的C语言标准,预计将于2022年12月1日完成。
为什么要说C语言是编程界大爹般的存在呢?
身为腾讯 IEG 运营开发工程师的李彦锋说过这样一句话:
如今这世界上,凡是带电的地方,可能都会有她(C语言)或者她的子孙的影子。
任何比C语言更低级的语言,都不足以完整地抽象一个计算机系统;
任何比C高级的语言,都可以用C来实现。
作为前辈的C语言,影响了诞生于它之后的几乎所有编程语言。如C++、C#等成为了它的直接继承者,而其他语言也不过是采用和改编了C的语法。
虽然时至今日,C语言在TIOBE编程语言排行榜的江山已被python和java占去大半,就连C#和C++也快要超越C语言,但我还是要来一句:
printf("C语言天下第一!");
浮游塔第2层:软件
想必看这篇文章的同志大多都是计算机或者软件相关专业的,既然如此,那么问一个简单的问题。到底何为软件呢?它的定义又是什么的?
以开发语言作为描述语言的话,可以认为软件是一种产品,是由程序、数据以及相关的文档所组成的完整集合。
软件=程序+数据+文档
1.程序:是为了实现特定目标或解决特定问题,而用编写的命令序列的集合。
程序=算法+数据结构
2.数据:就是程序在运行过程中所涉及到的信息。包括:数字、文本、图片、视频 、音频等文件。在计算机中,所有数据都要转换成1或0的二进制代码形式来进行处理。