Lazy loaded image
C语言基础语法(C01)
字数 2552阅读时长 7 分钟
2025-10-3
2025-10-8
password
comment
type
status
date
slug
summary
tags
category
icon

C语言基础语法

C语言是一种通用的编程语言,广泛应用于系统编程、嵌入式开发和高性能计算等领域。
它具有高效、灵活、可移植性强等特点,是许多其他编程语言的基础。
在C语言中,令牌(Token)是程序的基本组成单位。编译器通过对源代码进行词法分析,将代码分解成一个个的令牌。
C语言的令牌主要包括以下几种类型:
  • 关键字(Keywords)
  • 标识符(Identifiers)
  • 常量(Constants)
  • 字符串字面量(String Literals)
  • 运算符(Operators)
  • 分隔符(Separators)

C语言程序的基本结构

这是一个简单的C语言程序,可以输出"Hello, World!":
上述代码的基本结构包括:
  • 预处理器指令:如#include#define
  • 主函数:每个C语言程序都必须包含一个main()函数。
  • 变量声明:声明程序中使用的变量。
  • 函数定义:定义程序中使用的函数。
下面将介绍更复杂的C语言程序结构:
头文件包含
  • 头文件通常在程序开头通过#include指令引入。这些文件提供函数和库的声明,如<stdio.h>(标准输入输出)和<stdlib.h>(标准库)等。它们包含函数、宏和常量的定义,让程序能使用预定义的库功能。
  • 示例:#include <stdio.h>
宏定义
  • 宏是通过#define指令创建的符号常量或代码片段。在编译前,预处理器会将宏替换为其定义内容。宏常用于定义常量或简化复杂代码块。
  • 示例:#define PI 3.14159
函数声明
  • 在C语言中,必须在调用函数前先声明它。函数声明包括返回类型、函数名和参数列表,这些信息告诉编译器如何正确调用该函数。
  • 示例:int add(int a, int b);
主函数
  • main()函数是C语言程序的入口点,每个C语言程序都必须有一个main()函数。程序从这里开始执行,返回值 0 通常表示程序成功运行。
  • 示例:int main() { ... }
变量声明
  • C语言程序中的所有变量都必须先声明后使用。变量可以在main()函数内部声明,也可以在其他函数中或作为全局变量声明。
  • 示例:
语句和表达式
  • 语句是C语言程序的基本执行单元,通常是函数调用、赋值、控制语句(如iffor等)或表达式。表达式是由变量、操作符和常量组成的代码片段。
  • 示例:
控制流语句
  • 控制流语句用于控制程序执行的顺序,包括ifforwhiledo-while等循环和条件分支语句。
  • 示例:
函数定义
  • 函数定义包含实际的函数体,它描述了函数的具体实现。函数通常包含参数、局部变量和返回值。
  • 示例:
返回语句
  • return 语句用于终止函数执行,并将控制权返回给调用函数。main()函数返回值为0通常表示程序正常执行完成。
  • 示例:return 0;

分隔符

分隔符用于分隔语句和表达式,常见的分隔符包括:
  • 逗号,:用于分隔变量声明或函数参数。
  • 分号;:用于结束语句。
  • 括号
    • 圆括号()用于分组表达式和函数调用。
    • 花括号{}用于定义代码块。
    • 方括号[]用于数组下标。
在C语言程序中,分号;是语句结束符。每个语句必须以分号结束,表示一个逻辑实体的结束。
例如,下面是两个不同的语句:
一个单独的分号也可以作为一个空语句,表示什么都不做。例如:

注释

C语言有两种注释方式:
//开始的单行注释,这种注释可以单独占一行。
/* */这种格式的注释可以单行或多行。
例如:
不能在注释内嵌套注释,注释也不能出现在字符串或字符值中。

标识符

标识符是程序中变量、函数、数组等的名字。标识符由字母(大写或小写)、数字和下划线组成,但第一个字符必须是字母或下划线,不能是数字。
一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)。
C语言标识符内不允许出现标点字符,比如@、$和%。C语言是区分大小写的编程语言。因此,在C语言中,Hzauhzau是两个不同的标识符。下面列出几个有效的标识符:

常量

常量是固定值,在程序执行期间不会改变。
常量可以是整型常量、浮点型常量、字符常量、枚举常量等。

字符串字面量

字符串字面量是由双引号括起来的字符序列。
字符串末尾会自动添加一个空字符\0

运算符(Operators)

运算符用于执行各种操作,如算术运算、逻辑运算、比较运算等。
C语言中的运算符种类繁多,常见的包括:
  • 算术运算符+-*/%
  • 关系运算符==!=<>>=<=
  • 逻辑运算符&&||!
  • 位运算符&|^~<<>>
  • 赋值运算符=+=-=*=/=%=
  • 其他运算符sizeof?:&*->.

关键字

下表列出了C语言中的保留字。这些保留字不能作为常量名、变量名或其他标识符名称。
关键字
说明
auto
声明自动变量
break
跳出当前循环
case
开关语句分支
char
声明字符型变量或函数返回值类型
const
定义常量,如果一个变量被 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
循环语句的循环条件

新增关键字

C99新增关键字
C11新增关键字
_Bool
_Alignas
_Complex
_Alignof
_Imaginary
_Atomic
inline
_Generic
restrict
_Noreturn
_Static_assert
_Thread_local

C语言中的空格

只包含空格的行,被称为空白行,可能带有注释,C语言编译器会完全忽略它。
在C语言中,空格用于描述空白符、制表符、换行符和注释。空格分隔语句的各个部分,让编译器能识别语句中的某个元素(比如int)在哪里结束,下一个元素在哪里开始。因此,在下面的语句中:
在这里,intage之间必须至少有一个空格字符(通常是一个空白符),这样编译器才能够区分它们。另一方面,在下面的语句中:
fruit=,或者=apples之间的空格字符不是必需的,但是为了增强可读性,您可以根据需要适当增加一些空格。
 
上一篇
C语言知识点思维导图
下一篇
C语言数据类型(C02)

评论
Loading...