C 语言简单编程速成


C 语言简单编程速成文章插图
我们将所有的 C 语言要素放置到一份易读的备忘录上 。
? 来源:Linux.cn ? 作者:Seth Kenlon ? 译者:郑 ?
(本文字数:5500 , 阅读时长大约:8 分钟)
我们将所有的 C 语言要素放置到一份易读的备忘录上 。
1972 年 ,丹尼斯·里奇(Dennis Ritchie)任职于 贝尔实验室(Bell Labs) , 在几年前 , 他和他的团队成员发明了 Unix。 在创建了一个经久不衰的操作系统(至今仍在使用)之后 , 他需要一种好的方法来对这些 Unix 计算机编程 , 以便它们可用执行新的任务 。 在现在看来 , 这很奇怪 , 但在当时 , 编程语言相对较少 , Fortran、Lisp、 Algol 以及 B 语言都很流行 , 但是 , 对于贝尔实验室的研究员们想要做的事情来说 , 它们还是远远不够的 。 丹尼斯·里奇表现出一种后来被称为程序员的主要特征的特质:创造了他自己的解决方案 。 他称之为 C 语言 , 并且在近 50 年后 , 它仍在广泛的使用 。
为什么你应该学习 C 语言今天 , 有很多语言为程序员提供了比 C 语言更多的特性 。 最明显的是 C++ 语言 , 这是一种以相当露骨的方式命名的语言 , 它构建在 C 语言之上 , 创建了一种很好的面向对象语言 。 不过 , 许多其它语言的存在是有充分理由的 。 计算机擅长一致的重复 , 因此任何可预见的东西都可以构建在编程语言中 , 对程序员来说这意味着更少的工作量 。 为什么在 C++ 语言中用一行语句就可以将一个 int 转换为一个 long 时(long x = long(n);) , 还要在 C 语言用两行语句呢?
然而 , C 语言在今天仍然有用 。
首先 , C 语言是一种相当简约和直接的语言 。 除了编程的基础知识之外 , 并没有很高级的概念 , 这很大程度上是因为 C 语言实际上就是现代编程语言的基础之一 。 例如 , C 语言的特性之一是数组 , 但是它不提供字典(除非你自己写一个) 。 当你学习 C 语言时 , 你会学习编程的基础组成部分 , 它可以帮助你认识到如今的编程语言的改进及其的精心设计 。
因为 C 语言是一种最小化的编程语言 , 你的应用程序很可能会获得性能上的提升 , 这在其它许多编程语言中是看不到的 。 当你考虑你的代码可以执行多快的时候 , 很容易陷入锱铢必较的境地 , 因此 , 重要的是要问清楚你是否需要为某一特定任务提供更多的速度 。 与 Python 或 Java 相比 , 使用 C 语言 , 你在每行代码中需要纠结的地方更少 。 C 语言程序运行很快 。 这是 Linux 内核使用 C 语言编写的一个很好的理由 。
最后 , C 语言很容易入门 , 特别是 , 如果你正在运行 Linux , 就已经能运行 C 语言代码了 , 因为 Linux 系统包含 GNU C 库(glibc) 。 为了编写和构建 C 语言程序 , 你需要做的全部工作就是安装一个编译器 , 打开一个文本编辑器 , 开始编码 。
开始学习 C 语言如果你正在运行 Linux, 你可以使用你的软件包管理器安装一个 C 编译器 。 在 Fedora 或 RHEL 上:
$ sudo dnf install GCC在 Debian 及其衍生系统上:
$ sudo apt install build-essential在 macOS 上 , 你可以 安装 Homebrew, 并使用它来安装 GCC :
$ brew install gcc在 Windows 上, 你可以使用 MinGW 安装一套最小的包含 GCC 的 GNU 实用程序集 。
在 Linux 或 macOS 上验证你已经安装的 GCC:
$ gcc --versiongcc (GCC) x.y.zCopyright (C) 20XX Free Software Foundation, Inc.在 Windows 上 , 提供 EXE 文件的完整路径:
PS> C:\MinGW\bin\gcc.exe --versiongcc.exe (MinGW.org GCC Build-2) x.y.zCopyright (C) 20XX Free Software Foundation, Inc.C 语法C 语言不是一种脚本语言 。 它是一种编译型语言 , 这意味着它由 C 编译器处理来产生一个二进制可执行文件 。 这不同于脚本语言(如 Bash )或混合型语言(如 Python ) 。
在 C 语言中 , 你可以创建函数来执行你希望做到的任务 。 默认情况下 , 执行的是一个名为 main 的函数 。
这里是一个使用 C 语言写的简单的 “hello world” 程序:
#include int main() {printf("Hello world");return 0;}第一行包含一个被称为 stdio.h(标准输入和输出)的 头文件 , 它基本上是自由使用的、非常初级的 C 语言代码 , 你可以在你自己的程序中重复使用它 。 然后创建了一个由一条基本的输出语句构成的名为 main 的函数 。 保存这些文本到一个被称为 hello.c 的文件中 , 然后使用 GCC 编译它:
$ gcc hello.c --output hello