本章目录:
- 前言
- 1. C 语言的基础结构
- 1.1 C 程序的基本构成
- 1.2 一个简单的 C 程序实例
- 1.3 复杂的 C 程序结构
- 2. C 语言的基本构成单元
- 2.1 关键字
- 标准关键字
- C99 新增关键字
- C11 新增关键字
- 2.2 标识符
- 2.3 常量
- 2.4 注释
- 3. 语句与表达式
- 3.1 语句
- 3.2 表达式
- 4. 分隔符与空格
- 4.1 分隔符
- 4.2 空格与空白符
前言
C 语言是一种经典的通用编程语言,凭借其高效、灵活、可移植性强的特点,在系统编程、嵌入式开发和高性能计算等领域得到了广泛应用。作为许多现代编程语言的基础,掌握 C 语言的基本语法是学习其他编程语言的关键。
本文将从 C 语言的基础语法出发,详细讲解其核心概念,帮助读者理解并掌握 C 语言的编程技巧。
1. C 语言的基础结构
1.1 C 程序的基本构成
每个 C 程序都由若干部分组成,最基本的结构包括:
- 头文件引用:通过
#include
指令包含必要的库文件,以便使用预定义的函数。 - 宏定义:使用
#define
定义常量或代码片段,供程序使用。 - 主函数:每个 C 程序都必须包含一个
main()
函数,这是程序执行的入口。 - 变量声明:在函数中声明并初始化变量。
- 函数定义:定义程序所需的函数,以实现具体功能。
1.2 一个简单的 C 程序实例
#include <stdio.h> // 引入标准输入输出库
int main() {
printf("Hello, World!\n"); // 输出一行文字
return 0; // 返回 0,表示程序成功执行
}
解释:
#include <stdio.h>
:引入标准输入输出库,使用printf
函数。int main()
:main
函数是程序的入口点,返回0
表示程序正常执行结束。printf
:标准库函数,用于输出文本。
1.3 复杂的 C 程序结构
一个稍微复杂的 C 程序可能包含更多的功能,比如输入输出、函数调用等:
#include <stdio.h> // 引入标准输入输出库
#define PI 3.14159 // 定义常量 PI
// 函数声明
int add(int a, int b);
int main() {
int num1, num2, sum; // 变量声明
// 用户输入
printf("Enter two integers: ");
scanf("%d %d", &num1, &num2);
// 函数调用
sum = add(num1, num2);
// 输出结果
printf("Sum: %d\n", sum);
return 0; // 返回 0,表示程序成功执行
}
// 函数定义
int add(int a, int b) {
return a + b;
}
解释:
#define PI 3.14159
:定义了一个常量PI
,在程序中可以随时使用。scanf
:用来从标准输入获取用户输入。add
:一个自定义的函数,用于计算两个整数的和。
2. C 语言的基本构成单元
C 语言的程序由多种不同的构成单元(称为令牌)组成。每个令牌都有特定的功能,编译器通过对代码进行词法分析,将源代码分解成一个个令牌。C 语言中的令牌主要有以下几种类型:
- 关键字(Keywords)
- 标识符(Identifiers)
- 常量(Constants)
- 字符串字面量(String Literals)
- 运算符(Operators)
- 分隔符(Separators)
2.1 关键字
C 语言有一组保留字,称为关键字,它们是语言的基础语法单位,具有特定的含义。以下是 C 语言的关键字列表:
标准关键字
auto | break | case | char | const | continue | default | do |
---|---|---|---|---|---|---|---|
double | else | enum | extern | float | for | goto | if |
int | long | register | return | short | signed | sizeof | static |
struct | switch | typedef | union | unsigned | void | volatile | while |
C99 新增关键字
inline | restrict | _Bool | _Complex | _Imaginary |
---|
C11 新增关键字
_Alignas | _Alignof | _Atomic | _Static_assert | _Noreturn |
---|---|---|---|---|
_Thread_local | _Generic | |||
---------- | ---------- | --------- | ---------------- | ----------- |
关键字的使用:
关键字在程序中有固定的含义,因此不能作为标识符(如变量名或函数名)使用。关键字定义了程序控制流、数据类型、存储类型等。
2.2 标识符
标识符是程序中变量、函数、数组等的名称。C 语言的标识符命名规则如下:
- 标识符只能由字母(A-Z、a-z)、数字(0-9)和下划线(_)组成,但第一个字符不能是数字。
- C 语言对标识符的大小写敏感,因此
variable
和Variable
是不同的标识符。 - 标识符不能使用关键字名称。
有效的标识符例子:
total_sum
averageScore
_temp
result1
2.3 常量
常量是指程序运行期间其值不可改变的数据。常量有多种类型,主要包括:
- 整型常量:如
10
、-5
- 浮点型常量:如
3.14
、-0.5
- 字符常量:如
'a'
、'1'
- 字符串常量:如
"Hello, World!"
声明常量的方式通常使用 const
关键字:
const int MAX_SIZE = 100; // 整型常量
const float PI = 3.14159; // 浮点型常量
const char NEWLINE = '\n'; // 字符常量
2.4 注释
C 语言支持两种类型的注释:
-
单行注释:以
//
开始,注释内容直到行尾。// 这是一个单行注释
-
多行注释:以
/*
开始,以*/
结束,可以跨越多行。/* 这是一个多行注释 可以写很多行 */
注意:
- 注释不能嵌套,即不能在一个注释中再使用注释符号。
- 注释对程序的执行没有影响,它们仅用于代码说明。
3. 语句与表达式
在 C 语言中,语句是执行单元,而表达式是由运算符、变量和常量组成的表达式片段。
3.1 语句
C 语言中的语句包括:
-
表达式语句:如赋值语句、函数调用语句。
sum = a + b; printf("Hello, World!\n");
-
控制语句:如条件语句和循环语句。
if (x > y) { printf("x is greater than y"); }
3.2 表达式
表达式是由操作数(常量、变量)和运算符组成的运算单位。常见的运算符包括:
- 算术运算符:
+
、-
、*
、/
、%
- 关系运算符:
==
、!=
、>
、<
、>=
、<=
- 逻辑运算符:
&&
、||
、!
例如:
int a = 5, b = 10;
int sum = a + b; // 使用算术运算符 +
4. 分隔符与空格
4.1 分隔符
C 语言中的分隔符用于分隔语句、表达式或声明。常见的分隔符包括:
- 逗号(,):分隔变量或函数参数。
- 分号(;):结束语句。
- 括号(()):分组表达式或函数调用。
- 花括号({}):定义代码块。
- 方括号([]):表示数组下标。
4.2 空格与空白符
空格在 C 语言中主要用来分隔关键字、标识符和操作符等,帮助编译器识别