创建第一个C程序
C程序示例
C 程序主要包括以下部分:
- 预处理器指令
- 函数
- 变量
- 语句 & 表达式
- 注释
#include <stdio.h>
int main(void)
{
printf("Hello world ! \n");
return 0;
}
编译执行后会输出 Hello World!
接下来我们讲解一下上面这段程序:
- 程序的第一行 #include <stdio.h> 严格来说它不是可执行程序的一部分,但它很重要,程序没有它是不执行的。符号#表示这是一个预处理命令,告诉编译器在执行代码之前先做一些操作。预处理指令相当多,一般放在源文件的开头。头文件是包含函数声明定义的文件;你平时写C语言时,用到的printf() 和scanf()都是系统定义好的,而这些函数的定义就包含在stdio.h这个文件中!
- 第二行int main(void) 注意这行代码的末尾没有分号, int表明main函数要返回一个整数作为返回值, 执行完main()函数后的整数值表示返回给操作系统的一个代码,他表示程序的状态。
- printf 产生格式化输出的函数(定义在 stdio.h 中),其向终端显示器、控制台等)输出字符。
- return 0; 这个return语句结束main()函数执行,把0返回给操作系统
C基本语法
C 程序由各种令牌组成,令牌可以是关键字、标识符、常量、字符串值,或者是一个符号。例如,下面的 C 语句包括五个令牌:
printf(“Hello, World! \n”);
这五个令牌分别是:
printf
(
"Hello, World! \n"
)
;
分号 ;
在 C 程序中,分号是语句结束符。也就是说,每个语句必须以分号结束,必须用英文的符号。它表明一个逻辑实体的结束。
例如,下面是两个不同的语句:
printf("Hello, World! \n");
return 0;
注释
C 语言有两种注释方式:
以 // 开始的单行注释,这种注释可以单独占一行。
//单行注释
/ / 这种格式的注释可以单行或多行。
/ 单行注释 / /
多行注释
多行注释
多行注释 /
关键字
在C语言中,关键字是有特殊意义的字,所以在程序中不能将关键字用于其它目的。关键字也称保留字,在前面例子中,int void return都是关键字
| 关键字 | 说明 |
|---|---|
| auto | 声明自动变量 |
| break | 跳出当前循环 |
| case | 开关语句分支 |
| char | 声明字符型变量或函数返回值类型 |
| const | 声明只读变量 |
| continue | 结束当前循环,开始下一轮循环 |
| default | 开关语句中的”其它”分支 |
| do | 循环语句的循环体 |
| double | 声明双精度浮点型变量或函数返回值类型 |
| else | 条件语句否定分支(与 if 连用) |
| enum | 声明枚举类型 |
| extern | 声明变量或函数是在其它文件或本文件的其他位置定义 |
| float | 声明浮点型变量或函数返回值类型 |
| for | 一种循环语句 |
| goto | 无条件跳转语句 |
| if | 条件语句 |
| int | 声明整型变量或函数 |
| long | 声明长整型变量或函数返回值类型 |
| register | 声明寄存器变量 |
| return | 子程序返回语句(可以带参数,也可不带参数) |
| short | 声明短整型变量或函数 |
| signed | 声明有符号类型变量或函数 |
| sizeof | 计算数据类型或变量长度(即所占字节数) |
| static | 声明静态变量 |
| struct | 声明结构体类型 |
| switch | 用于开关语句 |
| typedef | 用以给数据类型取别名 |
| unsigned | 声明无符号类型变量或函数 |
| union | 声明共用体类型 |
| void | 声明函数无返回值或无参数,声明无类型指针 |
| volatile | 说明变量在程序执行中可被隐含地改变 |
| while | 循环语句的循环条件 |
函数体
main()函数的一般结构如图

函数体是在函数名称后面位于起始及结束的两大括号之间的代码,它包含了函数功能的所有语句。