C 语言简介
C 是一种编程语言。最初是由 Dennis Ritchie 在 1969 年到 1973 年期间开发的。它主要是作为一种系统编程语言开发操作系统的。C 语言的主要特定包括,可直接操作内存的低级编程语言,简单的关键字集合,清晰的数据类型,这些特点使得 C 语言适合开发像操作系统或编译器等系统级应用编程。
后来的需要编程语言从 C 语言这里直接或间接的引入需要语言/特性方面的内容。例如 Java、PHP、JavaScript 和需要其他语言再语法上主要是基于 C 的。C++ 近乎为 C 语言的一个超集(有少量的语法可能在 C 下可以编译,C++ 下不行)
开始 C 编程
- C 语言编程的结构
在上述描述后,我们可以形式化的看一下 C 语言编程的结构。这里的结构意味着任何程序只被允许在这个结构下书写,任何其他结构的书写方式都可能导致一个编译错误。
C 语言编程的结构如下图所示:
上面结构中的组件包括:
- 引入头文件:在 C 编程中,首先最重要的组件是引入头文件。头文件是一个扩展文件,其扩展面为 .h,它包括了在几个源文件之间共享的 C 函数声明及宏定义
一些常见的 C 头文件:
- stddef.h – 定义几个有用的数据类型及宏定义
- stdint.h – 定义精准宽度的整数类型
- stdio.h – 定义核心的输入及输出函数
- stdlib.h – 定义数值转换函数,伪随机网络生成,内存分配等
- string.h – 定义字符串处理相关的函数
- math.h – Defines common mathematical functions 定义常见的数学计算函数
在 C 中引入一个头文件的语法为:
#include <(header_file_name).h>
- **主函数声明:**C 语言编程的下一个部分是主函数 main() 的声明。主函数的声明语法为:
int main()
{}
- **变量声明:**再下一个部分是变量声明,它指的是可以在函数中被使用的变量,需要注意的是,在 C 语言编程中,任何变量使用前必须声明,它可以在函数中,它可以在任何操作之前被申明。
示例:
int main()
{
int a;
.
.
- 函数体: 在 C 中,函数体是指该函数所执行的一些操作,它可以是诸如数据操作,查找,排序,打印输出等等内容
示例:
int main()
{
int a;
printf("%d", a);
.
.
- **状态返回:**任何 C 语言的最后一部分都是状态返回。状态返回指的是从函数返回一个值回来。返回的状态以及返回值由函数的返回类型决定。例如,如果返回类型是空(void),它将不返回状态,在任何其他情况下,都必须返回一个状态,返回值的类型是函数事先指定的。
示例:
int main()
{
int a;
printf("%d", a);
return 0;
}
- 编写第一个程序
下面是第一个编程示例:
#include <stdio.h>
int main(void)
{
printf("GeeksQuiz");
return 0;
}
我们逐行的解析一下上面这个程序
第 1 行: [ #include <stdio.h> ] 在 C 语言中,所有以 “#” 开头的在编译阶段,都会被编译器调用的预处理器进行处理。作为一个基础的内容,预处理的工作是将一个 C 语言程序转换为另一个 C 语言程序,转换后的程序中不再包含任何以 “#” 开头的内容。 在上面的示例中,预处理器实际上是把 stdio.h 文件的代码复制到我们的代码中,.h 文件在 C 中被称为头文件,头文件通常包含了一些函数声明,我们使用 stdio.h 是因为我们使用了其中的 printf() 函数。
第 2 行: [ int main(void) ] 这是 C 语言程序编译执行的入口点,圆括号中的 “void” 表明主函数不需要任何参数,当然主函数也可以写成带有参数形式,我们会在后面章节涉及到。
main 函数前面的 int 指示 main() 函数的返回类型。主函数的返回值表明程序的终止状态。
第 3 - 6 行: [ { and } ] 在 C 语言中,一对花括号定义了一个操作块,其主要用子啊函数和 if、else 以及循环等语句下。所有的函数必须以花括号开头和结尾。
第 4 行: [ printf(“GeeksQuiz”); ] printf() 是一个用于标准输出一些内容的标准库函数。printf 结尾的分号表明这行终止,在 C 中,分号总是用来表明语句终止。
第 5 行 [ return 0; ] main() 函数的返回语句。返回值可能被操作系统使用,以便知道你的程序执行的终止状态。返回值 0 通常意味着程序成功终止。
- 如何执行上面的程序:
为了执行上面的程序,我们需要有一个编译器去编译我们的程序以便运行。这里有需要在线编译器,例如: https://ide.geeksforgeeks.org/, http://ideone.com/ 或 http://codepad.org/ 它们可以使你即使不本地安装编译器也可以运行 C 程序。
Windows: 有需要多免费的 C 编译器可用,例如: Code Blocks and Dev-CPP. 我们强烈推荐使用 Code Blocks.
Linux: 对于 Linux 系统,推荐使用附带的 gcc 编译器。Code Blocks 也可以在 Linux 下使用。