1. 引言
C语言是一种通用的、过程式的编程语言,广泛应用于系统编程、嵌入式开发和高性能计算等领域。C语言的语法简洁、功能强大,是学习其他高级编程语言的基础。本文档将详细介绍C语言的基本语法,包括变量、数据类型、运算符和控制结构。
2. 变量
2.1 变量的定义
变量是程序中用于存储数据的容器。在C语言中,变量必须先定义后使用。定义变量时需要指定变量的数据类型和名称。 - int age; // 定义一个整型变量age
- float salary; // 定义一个浮点型变量salary
- char grade; // 定义一个字符型变量grade
复制代码
2.2 变量的命名规则
示例: - int age; // 合法
- int _age; // 合法
- int 1age; // 非法,不能以数字开头
- int float; // 非法,float是关键字
复制代码
2.3 变量的作用域
变量的作用域是指变量在程序中可见的范围。C语言中的变量作用域分为以下几种:
示例: - #include <stdio.h>
- int globalVar = 10; // 全局变量
- void func() {
- int localVar = 20; // 局部变量
- printf("Global Variable: %d\n", globalVar);
- printf("Local Variable: %d\n", localVar);
- }
- int main() {
- func();
- // printf("%d\n", localVar); // 错误,localVar在此处不可见
- return 0;
- }
复制代码
2.4 变量的生命周期
变量的生命周期是指变量从创建到销毁的时间段。
3. 数据类型
3.1 基本数据类型
C语言中的基本数据类型包括:
示例: - int a = 10; // 整型
- short b = 20; // 短整型
- long c = 100000L; // 长整型
- float d = 3.14f; // 单精度浮点型
- double e = 3.1415926; // 双精度浮点型
- char f = 'A'; // 字符型
复制代码
3.2 派生数据类型
C语言中的派生数据类型包括:
-
数组:存储相同类型的数据。 -
指针:存储变量的内存地址。 -
结构体:存储不同类型的数据。 -
联合体:共享内存空间的不同类型数据。
示例: - int arr[5] = {1, 2, 3, 4, 5}; // 数组
- int *ptr = &arr[0]; // 指针
- struct Point { int x; int y; }; // 结构体
- union Data { int i; float f; }; // 联合体
复制代码
3.3 类型修饰符
C语言中的类型修饰符用于改变变量的存储方式或行为:
-
signed:表示有符号数(默认)。 -
unsigned:表示无符号数。 -
short:表示短整型。 -
long:表示长整型。
示例: - unsigned int a = 10; // 无符号整型
- signed char b = -10; // 有符号字符型
- long double c = 3.14; // 长双精度浮点型
复制代码
3.4 类型转换
C语言中的类型转换分为隐式转换和显式转换:
示例: - int a = 10;
- float b = 3.14;
- float c = a + b; // 隐式转换,a被转换为float
- int d = (int)b; // 显式转换,b被转换为int
复制代码
4. 运算符
4.1 算术运算符
算术运算符用于执行基本的数学运算:
-
+:加法 -
-:减法 -
*:乘法 -
/:除法 -
%:取模(求余数)
示例: - int a = 10, b = 3;
- int sum = a + b; // 13
- int diff = a - b; // 7
- int prod = a * b; // 30
- int quot = a / b; // 3
- int rem = a % b; // 1
复制代码
4.2 关系运算符
关系运算符用于比较两个值的大小:
-
==:等于 -
!=:不等于 -
>:大于 -
<:小于 -
>=:大于等于 -
<=:小于等于
示例: - int a = 10, b = 20;
- if (a == b) { /* ... */ } // false
- if (a < b) { /* ... */ } // true
复制代码
4.3 逻辑运算符
逻辑运算符用于组合多个条件:
示例: - int a = 10, b = 20;
- if (a > 0 && b > 0) { /* ... */ } // true
- if (a > 0 || b < 0) { /* ... */ } // true
- if (!(a == b)) { /* ... */ } // true
复制代码
4.4 位运算符
位运算符用于对二进制位进行操作:
-
&:按位与 -
|:按位或 -
^:按位异或 -
~:按位取反 -
<<:左移 -
>>:右移
示例: - int a = 5, b = 3;
- int and = a & b; // 1 (0101 & 0011 = 0001)
- int or = a | b; // 7 (0101 | 0011 = 0111)
- int xor = a ^ b; // 6 (0101 ^ 0011 = 0110)
- int not = ~a; // -6 (按位取反)
- int leftShift = a << 1; // 10 (0101 << 1 = 1010)
- int rightShift = a >> 1;// 2 (0101 >> 1 = 0010)
复制代码
4.5 赋值运算符
赋值运算符用于给变量赋值:
-
=:简单赋值 -
+=、-=、*=、/=、%=:复合赋值
示例: - int a = 10;
- a += 5; // a = a + 5 → 15
- a *= 2; // a = a * 2 → 30
复制代码
4.6 其他运算符
-
条件运算符:? : -
逗号运算符:, -
sizeof运算符:sizeof
示例: - int a = 10, b = 20;
- int max = (a > b) ? a : b; // 条件运算符
- int c = (a++, b++); // 逗号运算符
- int size = sizeof(a); // sizeof运算符
复制代码
5. 控制结构
5.1 条件语句(if、else if、else)
条件语句用于根据条件执行不同的代码块。
语法: - if (condition1) {
- // 条件1为真时执行
- } else if (condition2) {
- // 条件2为真时执行
- } else {
- // 其他情况执行
- }
复制代码
示例: - int score = 85;
- if (score >= 90) {
- printf("A\n");
- } else if (score >= 80) {
- printf("B\n");
- } else {
- printf("C\n");
- }
复制代码
5.2 循环语句(for、while、do-while)
循环语句用于重复执行代码块。
for循环
语法: - for (初始化; 条件; 更新) {
- // 循环体
- }
复制代码
示例: - for (int i = 0; i < 5; i++) {
- printf("%d\n", i);
- }
复制代码
while循环
语法:
示例: - int i = 0;
- while (i < 5) {
- printf("%d\n", i);
- i++;
- }
复制代码
do-while循环
语法:
示例: - int i = 0;
- do {
- printf("%d\n", i);
- i++;
- } while (i < 5);
复制代码
5.3 跳转语句(break、continue、goto)
跳转语句用于改变程序的执行流程。
break
用于退出循环或switch语句。
示例: - for (int i = 0; i < 10; i++) {
- if (i == 5) {
- break; // 退出循环
- }
- printf("%d\n", i);
- }
复制代码
continue
用于跳过当前循环的剩余部分,进入下一次循环。
示例: - for (int i = 0; i < 10; i++) {
- if (i % 2 == 0) {
- continue; // 跳过偶数
- }
- printf("%d\n", i);
- }
复制代码
goto
用于无条件跳转到指定的标签。
示例: - int i = 0;
- start:
- if (i < 5) {
- printf("%d\n", i);
- i++;
- goto start; // 跳转到start标签
- }
复制代码
6. 总结
本文档详细介绍了C语言的基本语法,包括变量、数据类型、运算符和控制结构。掌握这些基础知识是学习C语言编程的第一步,也是进一步学习高级编程技术的基础。希望本文档能够帮助大家快速入门C语言编程! |