嘿,各位小伙伴们!好多人都来跟我倒苦水呢,说从一开始懵懵懂懂地接触 C 语言,一路学到现在,结果悲催地发现,自己竟然没好好做笔记。这就导致学过的那些内容啊,乱得就像一锅大杂烩,根本分不清东南西北,也找不到一个清晰明了的大纲。别愁眉苦脸啦!本博主闪亮登场,来拯救你们于“混乱之海”。接下来,我要给大家分享一份超厉害的 C 语言学习大纲哦!有用的宝子们赶紧麻溜地收藏起来,不然错过可就亏大喽!😎
- 起源与发展
- C 语言是一种通用的、高级程序设计语言。它最初是由丹尼斯・里奇(Dennis Ritchie)在 20 世纪 70 年代初,为了在贝尔实验室开发 UNIX 操作系统而设计的。它的前身是 BCPL(Basic Combined Programming Language)和 B 语言。C 语言的设计目标是提供一种能够高效地访问计算机硬件,同时又具有高级语言的编程便利性的语言。
- 随着时间的推移,C 语言不断发展和完善。1989 年,美国国家标准协会(ANSI)发布了第一个 C 语言标准,通常称为 ANSI C 或 C89。1999 年,ISO(国际标准化组织)发布了 C99 标准,引入了一些新的特性,如可变长度数组、内联函数等。之后还有 C11、C17 等标准,对 C 语言进行进一步的规范和改进。
- 基本语法结构
- 程序框架:一个简单的 C 语言程序通常由一个或多个函数组成。其中,
main
函数是程序的入口点。例如:
- 程序框架:一个简单的 C 语言程序通常由一个或多个函数组成。其中,
#include <stdio.h>
int main() {
printf("Hello, World!");
return 0;
}
上述代码中,#include <stdio.h>
是一个预处理指令,它告诉编译器包含标准输入输出头文件(stdio.h
),这个头文件提供了像printf
这样的函数的声明。main
函数中的printf
函数用于在控制台输出字符串,return 0
表示程序正常结束。
- 数据类型:C 语言有基本数据类型,如
int
(整数型)、float
(单精度浮点型)、double
(双精度浮点型)、char
(字符型)等。例如:
int num = 10;
float f_num = 3.14f;
double d_num = 3.1415926;
char ch = 'A';
- 这里分别定义了一个整数变量
num
,一个单精度浮点数变量f_num
,一个双精度浮点数变量d_num
和一个字符变量ch
。注意单精度浮点数常量后面要加f
后缀,以区别于双精度浮点数。 - 变量和常量:
- 变量是程序运行过程中可以改变的值,而常量是固定不变的值。除了上面提到的基本数据类型常量外,还有符号常量,通常使用
#define
预处理指令来定义。例如:
- 变量是程序运行过程中可以改变的值,而常量是固定不变的值。除了上面提到的基本数据类型常量外,还有符号常量,通常使用
#define PI 3.14159
- 这样,在程序中就可以使用
PI
来代表圆周率的值,方便修改和维护代码。 - 运算符和表达式:
- C 语言有丰富的运算符,包括算术运算符(
+
、-
、*
、/
、%
)、关系运算符(>
、<
、==
、>=
、<=
、!=
)、逻辑运算符(&&
、||
、!
)等。例如:
- C 语言有丰富的运算符,包括算术运算符(
int a = 5, b = 3;
int sum = a + b;
int is_greater = a > b;
int logical_result = (a > 1) && (b < 5);
- 这里分别展示了算术运算(求和)、关系运算(比较大小)和逻辑运算(逻辑与)。
- 控制结构
- 顺序结构:
- 程序按照语句的先后顺序依次执行。例如,上面的简单
main
函数中的printf
语句和return
语句就是顺序执行的。
- 程序按照语句的先后顺序依次执行。例如,上面的简单
- 选择结构:
- 主要有
if - else
语句和switch - case
语句。if - else
语句用于根据条件执行不同的代码块。例如:
- 主要有
- 顺序结构:
int num = 10;
if (num > 5) {
printf("The number is greater than 5.");
} else {
printf("The number is less than or equal to 5.");
}
- 对于
switch - case
语句,它用于多分支选择。例如:
int day = 3;
switch (day) {
case 1:
printf("Monday");
break;
case 2:
printf("Tuesday");
break;
case 3:
printf("Wednesday");
break;
default:
printf("Other day");
break;
}
- 循环结构:
- C 语言有
while
循环、do - while
循环和for
循环。while
循环在条件为真时重复执行代码块。例如:
- C 语言有
int i = 0;
while (i < 5) {
printf("%d ", i);
i++;
}
do - while
循环与while
循环类似,但是它先执行一次代码块,再判断条件。例如:
int j = 0;
do {
printf("%d ", j);
j++;
} while (j < 5);
for
循环是一种更紧凑的循环结构,通常用于已知循环次数的情况。例如:
for (int k = 0; k < 5; k++) {
printf("%d ", k);
}
- 函数
- 函数是 C 语言的基本模块,可以将一段代码封装起来,方便重复使用。函数包括函数声明、函数定义和函数调用。例如:
// 函数声明
int add(int a, int b);
// 函数定义
int add(int a, int b) {
return a + b;
}
// 函数调用
int result = add(3, 4);
函数可以有参数,用于传递数据给函数,也可以有返回值,用于将函数的计算结果返回给调用者。
- 数组和指针
- 数组:
- 数组是一组相同类型的数据的集合。例如,定义一个整数数组
- 数组:
int arr[5] = {1, 2, 3, 4, 5};
- 可以通过下标访问数组元素,如
arr[0]
表示数组的第一个元素。数组在内存中是连续存储的。 - 指针:
- 指针是一种变量,它存储的是另一个变量的地址。例如:
int num = 10;
int *p = #
- 这里
p
是一个指针变量,它指向变量num
,&num
是取num
的地址。可以通过指针来访问和修改它所指向的变量的值,如*p = 20
就将num
的值修改为 20。指针在 C 语言中有很多重要的应用,如动态内存分配、函数参数传递等。 - 结构体:结构体允许将不同类型的数据组合在一起。例如:
struct student {
char name[20];
int age;
float score;
};
struct student stu = {"Tom", 20, 85.5};
这里定义了一个student
结构体,包含姓名、年龄和成绩三个成员,然后创建了一个student
结构体变量stu
并初始化。
当然博主只是做了一个简单分享,还需各位宝子们自行整理,加油哦!