C语言基础语法是编程学习的核心内容,涵盖数据类型、变量常量、运算符、控制结构、函数、指针、数组与字符串等模块。以下为分模块详解:
1. 数据类型
- 基本类型
- 整型:
int
(4字节)、short
(2字节)、long
(4/8字节)、long long
(8字节),支持signed
(默认)和unsigned
修饰。 - 浮点型:
float
(单精度,7位有效数字)、double
(双精度,15-17位有效数字)、long double
(扩展精度)。 - 字符型:
char
(1字节),存储ASCII码,可参与整数运算。 - 构造类型
- 数组:连续内存存储同类型数据,如
int arr[5]
。 - 结构体:自定义复合类型,如
struct Point { int x; int y; };
。 - 联合体:共享内存的复合类型,如
union Data { int i; float f; };
。 - 枚举:符号常量集合,如
enum Week { MON, TUE };
。
2. 变量与常量
- 变量:需声明类型,如
int a = 10;
,支持全局(静态存储)和局部(动态存储)。 - 常量:
const
修饰:const int PI = 3.14;
。#define
宏定义:#define PI 3.14
(无类型检查)。- 字符串常量:
"Hello"
(末尾自动加\0
)。
3. 运算符
- 算术运算符:
+
、-
、*
、/
、%
(取模)。 - 关系运算符:
==
、!=
、>
、<
、>=
、<=
。 - 逻辑运算符:
&&
(与)、||
(或)、!
(非)。 - 位运算符:
&
(按位与)、|
(按位或)、^
(异或)、<<
(左移)、>>
(右移)。 - 赋值运算符:
=
、+=
、-=
等复合赋值。 - 条件运算符:
a > b ? a : b
(三目运算符)。 - 其他:
sizeof
(计算类型/变量大小)、,
(逗号表达式)。
4. 控制结构
- 条件语句
if-else
:多分支判断。switch-case
:多值匹配,需break
避免穿透。- 循环语句
for
:for (int i = 0; i < 10; i++)
。while
:先判断后执行。do-while
:先执行后判断。- 跳转语句
break
:退出循环/switch
。continue
:跳过当前迭代。goto
:无条件跳转(慎用)。
5. 函数
- 定义:
返回值类型 函数名(参数列表) { 函数体; }
,如int add(int a, int b) { return a + b; }
。 - 调用:
int sum = add(2, 3);
。 - 参数传递:值传递(默认)和指针传递(修改实参)。
- 递归:函数调用自身,需终止条件。
6. 指针
- 定义:
int *p;
(指向整型的指针)。 - 操作:
- 取地址:
&a
。 - 解引用:
*p
。 - 指针运算:
p++
(移动指针指向下一个元素)。 - 用途:动态内存分配、数组操作、函数参数传递。
7. 数组与字符串
- 数组:
- 一维:
int arr[5] = {1, 2, 3};
。 - 二维:
int matrix[3][3]
。 - 字符串:以
\0
结尾的字符数组,如char str[] = "Hello";
。
8. 预处理指令
- 头文件包含:
#include <stdio.h>
。 - 宏定义:
#define PI 3.14
。 - 条件编译:
#ifdef DEBUG
。
9. 动态内存管理
- 分配:
malloc
(void*
类型,需强制转换)、calloc
(初始化清零)。 - 释放:
free
。
10. 输入输出
- 格式化输出:
printf("Value: %d", a);
。 - 格式化输入:
scanf("%d", &a);
。 - 文件操作:
fopen
、fclose
、fread
、fwrite
。
11. 编码规范
- 命名规则:
- 变量/函数:小写字母+下划线(如
student_age
)。 - 常量:全大写+下划线(如
MAX_SIZE
)。 - 注释:单行
//
,多行/* */
。 - 缩进:4空格或Tab。
示例代码
#include <stdio.h>
int main() {
int a = 10, b = 20;
printf("Sum: %d\n", a + b); // 输出:Sum: 30
return 0;
}
总结
C语言基础语法是编程的基石,需通过大量实践(如算法题、小项目)巩固。理解指针、内存管理和函数设计是进阶的关键。建议结合《C Primer Plus》等经典书籍深入学习。