Appearance
基础语法
C语言有一套特定的语法规则,了解这些规则是编写正确C程序的基础。在本章节中,我们将介绍C语言的基本语法元素,包括语句结构、注释、标识符命名规则等。
1. 语句和分号
在C语言中,语句是执行特定操作的指令,每个语句都必须以分号(;)结尾。分号是语句的结束标志,告诉编译器一个语句已经结束。
例如:
c
int a = 10; // 赋值语句
printf("Hello!\n"); // 输出语句
return 0; // 返回语句2. 注释
注释是用于解释代码的文字,编译器会忽略注释内容。在C语言中,有两种注释方式:
2.1 单行注释
使用//开头,注释从//开始到行尾结束:
c
// 这是一个单行注释
int a = 10; // 这也是一个单行注释,说明变量a的值2.2 多行注释
使用/*开头,*/结尾,注释可以跨越多行:
c
/*
这是一个多行注释
可以跨越多行
用于详细解释代码
*/
int b = 20;3. 标识符
标识符是用于命名变量、函数、数组等的名称。在C语言中,标识符的命名规则如下:
- 只能包含字母、数字和下划线(
_) - 不能以数字开头
- 区分大小写(如
age和Age是不同的标识符) - 不能使用C语言的关键字(如
int、if、for等)
3.1 示例
合法的标识符:
name_countstudent_ageMAX_VALUE
非法的标识符:
123abc(以数字开头)student-age(包含连字符)int(使用关键字)my name(包含空格)
3.2 命名规范
虽然C语言没有强制要求,但为了代码的可读性,通常遵循以下命名规范:
- 变量和函数:使用小写字母,单词之间用下划线分隔(如
student_name) - 常量:使用大写字母,单词之间用下划线分隔(如
MAX_SIZE) - 宏:使用大写字母,单词之间用下划线分隔(如
PI)
4. 关键字
关键字是C语言中预定义的、具有特殊含义的单词,不能用作标识符。以下是C语言的关键字:
| 关键字 | 说明 |
|---|---|
auto | 自动变量 |
break | 跳出循环或switch语句 |
case | switch语句的分支 |
char | 字符类型 |
const | 常量 |
continue | 继续循环的下一次迭代 |
default | switch语句的默认分支 |
do | do-while循环的开始 |
double | 双精度浮点类型 |
else | if语句的否则分支 |
enum | 枚举类型 |
extern | 外部变量声明 |
float | 单精度浮点类型 |
for | for循环 |
goto | 无条件跳转 |
if | 条件语句 |
int | 整数类型 |
long | 长整数类型 |
register | 寄存器变量 |
return | 函数返回 |
short | 短整数类型 |
signed | 有符号类型 |
sizeof | 计算数据类型大小 |
static | 静态变量 |
struct | 结构体类型 |
switch | 多分支选择语句 |
typedef | 类型定义 |
union | 共用体类型 |
unsigned | 无符号类型 |
void | 空类型 |
volatile | volatile变量 |
while | while循环 |
5. 空白字符
C语言中的空白字符(空格、制表符、换行符)通常被编译器忽略,除非它们出现在字符串字面量中。空白字符用于分隔代码元素,提高代码的可读性。
例如:
c
// 以下两种写法是等效的
int a=10;
int a = 10;
// 以下写法更易读
int calculate_area(int length, int width) {
return length * width;
}6. 预处理指令
预处理指令是以#开头的特殊指令,在编译之前由预处理器处理。常见的预处理指令包括:
#include:包含头文件#define:定义常量或宏#ifdef/#ifndef/#endif:条件编译
例如:
c
#include <stdio.h> // 包含标准输入输出头文件
#define PI 3.14159 // 定义常量PI
int main() {
double radius = 5.0;
double area = PI * radius * radius;
printf("Area: %.2f\n", area);
return 0;
}7. 代码块
代码块是由花括号{}包围的一组语句,用于将多条语句组合成一个逻辑单元。代码块通常用于函数体、条件语句、循环语句等。
例如:
c
int main() {
// 代码块开始
int a = 10;
int b = 20;
int sum = a + b;
printf("Sum: %d\n", sum);
// 代码块结束
return 0;
}8. 转义字符
转义字符是以反斜杠\开头的特殊字符,用于表示一些无法直接输入的字符。常见的转义字符包括:
| 转义字符 | 含义 |
|---|---|
\n | 换行 |
\t | 制表符(Tab) |
\r | 回车 |
\b | 退格 |
\ | 单引号 |
\" | 双引号 |
\\ | 反斜杠 |
例如:
c
printf("Hello\nWorld!"); // 输出Hello后换行,再输出World!
printf("Name:\tJohn"); // 输出Name:后加一个制表符,再输出John
printf("He said, \"Hello!\"\n"); // 输出带双引号的字符串9. 示例:综合运用
现在,让我们看一个综合运用上述语法元素的例子:
c
#include <stdio.h>
// 定义常量
#define MAX_STUDENTS 50
// 函数声明
int calculate_average(int scores[], int count);
int main() {
/*
这是一个计算学生平均分数的程序
演示了C语言的基本语法
*/
// 定义变量
int student_scores[MAX_STUDENTS];
int student_count = 5;
int i;
// 输入分数
student_scores[0] = 85;
student_scores[1] = 92;
student_scores[2] = 78;
student_scores[3] = 95;
student_scores[4] = 88;
// 计算平均分
int average = calculate_average(student_scores, student_count);
// 输出结果
printf("学生人数: %d\n", student_count);
printf("平均分数: %d\n", average);
return 0;
}
// 函数定义:计算平均分
int calculate_average(int scores[], int count) {
int sum = 0;
for (int i = 0; i < count; i++) {
sum += scores[i];
}
return sum / count;
}小结
C语言的基础语法包括:
- 语句和分号:每个语句必须以分号结尾
- 注释:单行注释(
//)和多行注释(/* */) - 标识符:用于命名变量、函数等,遵循特定的命名规则
- 关键字:C语言预定义的、具有特殊含义的单词
- 空白字符:提高代码可读性,被编译器忽略
- 预处理指令:以
#开头的特殊指令 - 代码块:由花括号
{}包围的一组语句 - 转义字符:以反斜杠
\开头的特殊字符
掌握这些基础语法元素是编写正确C程序的前提,也是后续学习更复杂概念的基础。在接下来的章节中,我们将学习C语言的数据类型和变量。