练手网站开发,网站建设公司选择哪家好,伍佰亿营销型网站,现在推广网站最好的方式前言#xff0c;C语言是什么
语言#xff0c;比如中文、英语、法语、德语等#xff0c;是人与人交流的工具。
C语言也是语言#xff0c;不过是一种特殊的语言#xff0c;是人与计算机交流的工具。
为什么叫C语言呢#xff1f;
这就要从C语言的历史说起了。
一#…前言C语言是什么
语言比如中文、英语、法语、德语等是人与人交流的工具。
C语言也是语言不过是一种特殊的语言是人与计算机交流的工具。
为什么叫C语言呢
这就要从C语言的历史说起了。
一C语言的前世今生
计算机的世界是二进制的世界这是学习计算机必须具备的常识现实世界中的数据之所以能被计算机处理是因为
输入到计算机的数据会被转换为二进制数据在计算机中以二进制的形式存储数据在计算机中以二进制的形式参与计算
计算机发明伊始科学家们直接使用二进制编写的程序与计算机交流二进制语言称之为机器语言。
机器语言太难理解、记忆、维护于是科学家们发明了助记符编写程序时使用特定的人类语言交给计算机执行前将程序转换为机器语言这个过程称为编译采用助记符的语言称之为汇编语言。
汇编语言是一种低级语言所谓低级是指和硬件关联特别是与CPU指令集关联密切不同的CPU架构有不同的指令集可以理解为不同的CPU架构有不同的汇编语言这就导致一个问题汇编语言编写的程序不具备通用性ARM架构的程序不能直接在AMD架构运行。
开发一种屏蔽底层硬件差异的语言提上了科学家的日程这种语言称之为高级语言高级是指语言远离了硬件更接近人类语言。
1969年美国贝尔实验室的肯·汤普森Ken Thompson与丹尼斯·里奇Dennis Ritchie一起开发了 Unix 操作系统。Unix 是用汇编语言写的无法移植到其他计算机他们决定使用高级语言重写。但是当时的高级语言无法满足他们的要求汤普森就在 BCPL 语言的基础上发明了 B 语言。
1972年丹尼斯·里奇和布莱恩·柯林汉Brian Kernighan又在 B 语言的基础上重新设计了一种新语言这种新语言取代了 B 语言所以称为 C 语言。这就是C语言名称的来历。
1973年整个 Unix 系统都使用 C 语言重写。此后这种语言开始快速流传广泛用于各种操作系统和系统软件的开发。
1988年美国国家标准协会ANSI正式将 C 语言标准化标志着 C 语言开始稳定和规范化。
几十年后的今天C 语言依然是最广泛使用、最流行的系统编程语言之一Unix 和 Linux 系统现在还是使用 C 语言开发。
二C语言的特点
C语言的特点主要包括以下几点
1简洁性和灵活性C语言设计得非常简洁仅有大约32个关键字和一套有限的控制结构这使得它易于学习和使用。同时它提供了很高的灵活性允许程序员直接控制硬件资源。
2高级与低级特性的结合C语言结合了高级语言的结构化特性如函数、数组、指针与低级语言的特性如直接内存访问使得它既能进行高层的抽象编程也能进行底层的系统编程。
3结构化编程C语言支持结构化编程范式通过函数来组织代码使程序易于理解、修改和维护。它提供了结构化的控制语句如if-else、while、for循环等有助于编写清晰的逻辑流程。
4丰富的数据类型C语言支持多种数据类型包括基本类型如整型、浮点型、字符型、构造类型数组、结构体、共用体、指针类型等以及后来标准中添加的布尔类型、枚举类型等能够满足复杂数据结构的需求。
5运算符和表达式的多样性C语言有34种运算符涵盖了算术、关系、逻辑、位操作等多种运算支持丰富的表达式组合增强了代码的表达力和效率。
6直接访问硬件通过指针C语言允许直接访问内存地址这对于系统编程和硬件操控非常关键但同时也增加了程序潜在的风险如内存泄漏和指针错误。
7可移植性虽然C语言与特定的机器架构紧密相关但通过遵循标准如ANSI C或ISO C编写的代码能够在不同平台上编译和运行具有一定的可移植性。
8编译型语言C语言是编译型语言源代码需要通过编译器转换成机器代码然后才能在目标机器上运行这通常意味着执行效率较高。
9广泛应用由于其高效性和灵活性C语言被广泛应用于操作系统、嵌入式系统、设备驱动程序、游戏引擎、数据库等领域。
10高效性C语言生成的目标代码通常较小且执行效率高适合对性能要求严格的应用场景。
三C语言的里程碑
C语言自20世纪70年代初诞生以来经历了多个重要发展里程碑这些里程碑不仅见证了C语言本身的演进也深刻影响了整个软件开发领域。以下是C语言发展的一些关键节点
1起源1969-1972C语言的前身可以追溯到贝尔实验室的BCPLBasic Combined Programming Language语言由Martin Richards开发。BCPL启发了B语言的创造由Ken Thompson在1970年设计用于编写UNIX操作系统。Dennis Ritchie随后在此基础上开发了C语言最初是为了重新实现UNIX操作系统。
2 第一个C编译器1972Dennis Ritchie编写了第一个C编译器该编译器是用汇编语言编写的。这个早期版本的C语言主要用于内部项目如UNIX系统的重写。
3KR C1978Brian Kernighan和Dennis Ritchie合著的《The C Programming Language》通常称为KR C出版这本书成为C语言的非正式标准极大地推动了C语言的普及。该书首次全面介绍了C语言的语法和使用方法。
4ANSI C1983-1989随着C语言的广泛应用美国国家标准协会ANSI成立了一个委员会来制定C语言的标准。1983年开始工作1989年正式发布了ANSI X3.159-1989即ANSI C标准也称为C89。这个标准定义了C语言的语法、库函数和其他特性提高了不同编译器之间的兼容性。
5ISO C1990国际标准化组织ISO采纳了ANSI C标准并发布为ISO/IEC 9899:1990通常称为C90。C90成为了全球认可的C语言国际标准。
6C991999ISO发布了C语言的第二个主要修订版ISO/IEC 9899:1999简称C99。这一版本引入了许多新特性包括更灵活的数组初始化、变量声明的位置、新的数据类型如_Bool、以及对复数的支持等。
7C112011ISO发布了C语言的第三个重大修订ISO/IEC 9899:2011即C11。C11增加了多线程支持、静态断言、匿名结构体和联合体、alignas关键字等新特性并且对Unicode支持进行了改进。
8C17/C182018虽然没有引入太多新功能ISO发布了C语言的一个小更新ISO/IEC 9899:2018有时称为C17或C18主要目的是修正C11中的错误并澄清一些规定提高了标准的清晰度和一致性。
四C语言的编译
C 语言是一种编译型语言源码都是文本文件本身无法执行。必须通过编译器生成二进制的可执行文件才能执行。
编译器将代码从文本翻译成二进制指令的过程就称为编译阶段又称为“编译时”compile time跟运行阶段又称为“运行时”相区分。
目前最常见的 C 语言编译器是自由软件基金会推出的 GCC 编译器它可以免费使用。Linux 和 Mac 系统可以直接安装 GCCWindows 系统可以安装 MinGW。
不过初学者可以使用在线编译器直接在网页上模拟运行C代码、查看结果推荐使用下面两个在线工具
CodingGroundhttps://tutorialspoint.com/compile_c_online.phpOnlineGDB: https://onlinegdb.com/online_c_compiler 五我的第一个C程序
C 语言的源代码文件通常以后缀名.c结尾。
1编写源码
下面是一个简单的 C 程序hello.c它是一个普通的文本文件任何文本编译器都能用来写。
#include stdio.hint main(void) {printf(Hello World\n);return 0;
}上面这个程序作用仅仅是在屏幕上面显示“Hello World”。
2编译
假设你已经安装好了 GCC 编译器可以打开命令行执行下面的命令
gcc hello.c在这里插入图片描述
上面命令使用gcc编译器将源文件hello.c编译成二进制代码。
运行这个命令以后默认会在当前目录下生成一个编译结果文件a.outassembler output 的缩写Windows 平台为a.exe。
此外编译时可以通过GCC 的-o参数output 的缩写指定编译生成的文件名
gcc -o hello hello.c上面命令的-o hello指定编译生存的文件名为hello取代默认的a.out。编译后就会生成一个名叫hello的可执行文件相当于为a.out指定了名称。
3运行
运行第2步编译生成的文件就会在屏幕上输出Hello World
./a.out如果编译时通过-o指定了编译生成的结果的文件名为hello则执行如下命令
./hello如果是windows执行如下命令
hello.exe运行程序时可以通过GCC 的-std参数standard 的缩写指定按照哪个 C 语言的标准进行编译
gcc -stdc99 hello.c
上面命令指定按照 C99 标准进行编译。
注意-std后面需要用连接参数而不是像上面的-o一样用空格并且前后也不能有多余的空格。
六C语言的核心知识点
很多人说C语言很难但是大家要知道的是C语言难在工程实践C语言学起来并不难其核心知识点如下
①数据类型②运算符和表达式③输入和输出④流程控制⑤函数⑥数组⑦指针⑧结构体⑨文件操作⑩内存管理
细化版