1.什么是c语言
目录
1.起源
首先,C语言是贝尔实验室的Ken Thompson、Dennis Ritchie等人开发的Unix操作系统的“副产品”————1969年
因为当时操作系统均是使用汇编语言编写的(UNIX系统也不例外),程序往往难以调试和改进,于是Thompson意识到需要一种更高级的编程语言来完成Unix系统未来的开发,于是他在BCPL语言(20世纪60年代中期产生的一种系统编程语言)的基础上设计了一种小型的B语言,
不久Ritchie也加入到UNIX项目中,并一同开始用B语言编写程序。
1970年,贝尔实验室为UNIX项目争取到一台PDP-11计算机,并将B语言改进在PDP-11计算机上成功运行。
1971年,B语言已经明显不适合PDP-11计算机了,于是Ritchie开始研发B语言的升级版。最初,他将新开发的语言命名为NB语言(New B),但后来却越来越偏移B语言,于是他将其改名为C语言
1973年,C语言已经足够稳定,可以用来重新编写UNIX系统。同时,改用C语言编写的程序有一个非常重要的好处:可移植性。只要为贝尔实验室的其他计算机编写C语言编译器,他们的团队就能让UNIX系统也运行在那些机器上。
2.标准化
C语言在20世纪70年代(特别是1977年到1979年之间)持续发展。这时期出现了一本C语言的书——《C程序设计语言》由Brian Kenighan和Dennis Ritchie合作编写的,此书1979年出版,迅速成为了C程序员必读的“圣经”,并成为了当时C语言事实上的标准,被称为K&R或者“白皮书”
随着C语言的迅速普及,一系列问题也接踵而至。因为编写新的C语言编译器的程序员都用“白皮书”来作为参考,但遗憾的是,白皮书对一些语言的描写非常模糊,使得不同的编译器会对这些特性做出不同的处理,而且白皮书中并没有对C语言的特性和UNIX系统的特性进行区分,更糟糕的是,白皮书出版后,C语言仍在不同变化,增加新特性并去除了一些老特性,这使得C语言需要一个全面、准确的最新描述开始成为了常识。
1983年,在美国国家标准学会(ANSI)的推动下,美国开始制定本国的C语言标准。经过多次修订,最终于1988年完成并在1989年12月正式通过,成为ANSI标准X3.159-1989。
1990年,国际标准化组织(ISO)通过了此项标准,将其作为ISO/IEC 9899:1990国际标准。我们将这一C语言标准成为C89或C90,以区别原始的C语言版本(经典C)
1999年,ISO通过的ISO/IEC 9899:1999新标准中做出一些重要的改变,这一标准成为C99
2011年,ISO通过ISO/EC 9899:2011,这一标准所描述的 C语言通常称为 C11
2018年,ISO通过ISO/IEC 9899:2018,这一标准所描述的 C语言通常称为 C18。
3.C生万物
C语言对现代编程语言有着巨大的影响,许多现代编程语言都包含了大量C语言的特性
1. C++: 包括了所有 C特性,但增加了类和其他特性以支持面向对象编程
2. Java: 基于 C+,因此也继承了 C 的许多特性。
3. C# : 由 C++和 Java 发展起来的一种较新的语言。
4. Perl: 最初是一种非常简单的脚本语言,在发展过程中采用了C的许多特性。
4.C语言的优缺点
优点: 高效,可移植性,功能强大,灵活,具有标准库,与UNIX系统的集成
缺点: C程序更容易隐藏错误,C程序可能会难以理解 ,C程序可能会难以修改
2.编写一个简单的C程序
显示双关语
#include<stdio.h>是必不可少的,它“包含”了C语言标准输入/输出库的相关信息。
程序的可执行代码都在main函数中,该函数代表“主”函数,一个工程中main函数有且仅有一个。
printf函数来自标准输入/输出库(使用前需要提前输入 #include<stdio.h>),可以产生完美的格式化输出。
return 0; 则表明程序终止时向操作系统返回值0
3.数据类型
C语言中,每一个变量都必须有一个类型。类型用来说明变量所存储的数据种类,该图为C语言所具有的数据类型
C语言中,变量具有不同的类型所占用的内存空间也不同,可如何知道不同的类型所占用的空间为多少呢?
如图,我们可以通过sizeof操作符配合printf函数去实现知道不同的类型占用的内存空间大小。
sizeof:是一个单目操作符,用来求类型、变量所占内存空间的大小,单位为字节
计算机存储空间单位之间换算如图,bit(比特)为最小单位
至此C语言入门 学习第一篇完结,如果有什么问题欢迎大家在评论区,讨论,指正。
(第一次码字,实属不易,望大家多多包涵)
也希望此文对于你能够有所帮助,谢谢大家~