2. C语言 基础语法

发布于:2025-02-11 ⋅ 阅读:(95) ⋅ 点赞:(0)


前言

C 语言是一种经典的通用编程语言,凭借其高效、灵活、可移植性强的特点,在系统编程、嵌入式开发和高性能计算等领域得到了广泛应用。作为许多现代编程语言的基础,掌握 C 语言的基本语法是学习其他编程语言的关键。

本文将从 C 语言的基础语法出发,详细讲解其核心概念,帮助读者理解并掌握 C 语言的编程技巧。


1. C 语言的基础结构

1.1 C 程序的基本构成

每个 C 程序都由若干部分组成,最基本的结构包括:

  1. 头文件引用:通过 #include 指令包含必要的库文件,以便使用预定义的函数。
  2. 宏定义:使用 #define 定义常量或代码片段,供程序使用。
  3. 主函数:每个 C 程序都必须包含一个 main() 函数,这是程序执行的入口。
  4. 变量声明:在函数中声明并初始化变量。
  5. 函数定义:定义程序所需的函数,以实现具体功能。

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 语言的标识符命名规则如下:

  1. 标识符只能由字母(A-Z、a-z)、数字(0-9)和下划线(_)组成,但第一个字符不能是数字。
  2. C 语言对标识符的大小写敏感,因此 variableVariable 是不同的标识符。
  3. 标识符不能使用关键字名称。

有效的标识符例子

  • 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 语言支持两种类型的注释:

  1. 单行注释:以 // 开始,注释内容直到行尾。

    // 这是一个单行注释
    
  2. 多行注释:以 /* 开始,以 */ 结束,可以跨越多行。

    /*
      这是一个多行注释
      可以写很多行
    */
    

注意

  • 注释不能嵌套,即不能在一个注释中再使用注释符号。
  • 注释对程序的执行没有影响,它们仅用于代码说明。

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 语言中主要用来分隔关键字、标识符和操作符等,帮助编译器识别