C 程序结构

163 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第30天,点击查看活动详情

C 程序主要包括以下部分:

  • 预处理器指令
  • 函数
  • 变量
  • 语句 & 表达式
  • 注释

让我们看一段简单的代码,可以输出单词 "Hello World":

实例

#include <stdio.h> int main() { /* 我的第一个 C 程序 */ printf("Hello, World! \n"); return 0; }

接下来我们讲解一下上面这段程序:

  1. 程序的第一行  #include <stdio.h>  是预处理器指令,告诉 C 编译器在实际编译之前要包含 stdio.h 文件。
  2. 下一行 int main()  是主函数,程序从这里开始执行。
  3. 下一行 /.../ 将会被编译器忽略,这里放置程序的注释内容。它们被称为程序的注释。
  4. 下一行 printf(...)  是 C 中另一个可用的函数,会在屏幕上显示消息 "Hello, World!"。
  5. 下一行 return 0;  终止 main() 函数,并返回值 0。

编译 & 执行 C 程序

接下来让我们看看如何把源代码保存在一个文件中,以及如何编译并运行它。下面是简单的步骤:

  1. 打开一个文本编辑器,添加上述代码。
  2. 保存文件为 hello.c
  3. 打开命令提示符,进入到保存文件所在的目录。
  4. 键入 gcc hello.c,输入回车,编译代码。
  5. 如果代码中没有错误,命令提示符会跳到下一行,并生成 a.out 可执行文件。
  6. 现在,键入 a.out 来执行程序。
  7. 您可以看到屏幕上显示  "Hello World"
$ gcc hello.c
$ ./a.out
Hello, World!

请确保您的路径中已包含 gcc 编译器,并确保在包含源文件 hello.c 的目录中运行它。

如果是多个 c 代码的源码文件,编译方法如下:

$ gcc test1.c test2.c -o main.out
$ ./main.out

test1.c 与 test2.c 是两个源代码文件。

(1)C语言程序主要由函数构成,函数是C语言程序的基本单位。一个C语言源程序必须有一个main函数,可以包含一个main函数和若干个其他函数。主函数可以调用其他函数,其他函数之间可以互相调用,但其他函数不能调用主函数。被调用的函数可以是系统提供的库函数(如printf和scanf函数),也可以是用户根据自己需要自己编制设计的函数。C语言的函数相当于其他语言中的子程序。用函数来实现特定功能。程序全部工作都是由各个函数分别完成的。编写C语言程序就是编写函数。 (2)一个函数由两部分组成 ①函数首部。即函数的第一行,包括:函数名、函数类型、函数参数(形式参数)名和参数类型。一个函数名后面必须跟一对圆括号,括号内写函数的参数名及其类型。函数可以没有参数,如: int mian() ②函数体。即函数首部下面的花括号内的部分。如果一个函数内有多个花括号,以最外层的一对花括号为函数体的范围。函数体一般包括声明部分(声明有关变量和函数类型)和执行部分(执行函数语句)。 (3)一个C语言程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何。 (4)C语言程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。 (5)每个语句和数据声明的最后必须有一个分号。 C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成的。 可以用“//”对程序进行注释,注释不被编译,不生成目标程序,不影响程序运行结果。

c语言三种基本程序结构是:顺序结构、选择结构(分支结构)、循环结构;

1、程序结构:在C语言程序中,一共有三种程序结构:顺序结构、选择结构(分支结构)、循环结构;

顺序结构:从头到尾一句接着一句的执行下来,直到执行完最后一句;

选择结构:到某个节点后,会根据一次判断的结果来决定之后向哪一个分支方向执行;

循环结构:循环结构有一个循环体,循环体里是一段代码。对于循环结构来说,关键在于根据判断的结果,来决定循环体执行多少次;

注:在逻辑上有一种bool类型(也叫boolean类型,布尔类型),只有两个值,即真和假。C语言的判断表达式最终的值就是一个bool类型,这个判断表达式的bool值就决定了选择结构如何选择,循环结构如何循环;

2、顺序结构:顺序结构很简单,一般我们遇到的除了选择结构和循环结构外,都是顺序结构;

3、选择结构:C语言中常用的选择结构主要有以下两种:

(1) if else: 引入关键字:if  else  else if (2) switch case: 引入关键字:switch  case  break  default 注:

第一,case中必须是常数,而且必须是整形;

第二,一般来说,每个case中代码段后都必须有一个break;

第三,case之后一般都会有default,虽然语法上允许没有default,但是建议写代码时一定要写;