第1章 导言
1. C程序的基本结构
(1) 最简单的C程序:Hello World
#include <stdio.h> // 标准输入输出头文件
int main() { // 主函数,程序入口
printf("Hello, World!\n"); // 输出字符串
return 0; // 返回状态码(0表示成功)
}
#include <stdio.h>
:包含标准库的头文件(如printf
函数)。main()
:程序执行的入口函数,必须返回int
类型。printf
:格式化输出函数,\n
表示换行。return 0
:表示程序正常退出(非0通常表示错误)。
(2) 程序编译与运行
- 使用编译器(如
gcc
)将源代码转换为可执行文件:
gcc hello.c -o hello # 编译
./hello # 运行
2. 变量与算术运算
(1) 变量声明与赋值
int a = 10; // 整型变量
float b = 3.14; // 浮点变量
char c = 'A'; // 字符变量
- 基本数据类型:
int
:整数(如-1
,0
,42
)。float
/double
:浮点数(如3.14
)。char
:单个字符(如'A'
)。
(2) 算术表达式
int sum = a + b * 2; // 运算符优先级:先乘后加
- 运算符:
+
,-
,*
,/
,%
(取模)。 - 类型转换:混合类型运算时自动转换(如
int + float
→float
)。
3. 控制流(分支与循环)
(1) 条件语句(if-else)
if (a > 0) {
printf("Positive\n");
} else if (a == 0) {
printf("Zero\n");
} else {
printf("Negative\n");
}
(2) 循环语句
while
循环:
while (a < 10) {
printf("%d\n", a);
a++;
}
for
循环:
for (int i = 0; i < 10; i++) {
printf("%d\n", i);
}
4. 函数
(1) 自定义函数
// 函数声明:返回类型 + 函数名 + 参数列表
int max(int x, int y) {
return (x > y) ? x : y; // 返回较大值
}
// 调用函数
int result = max(3, 5); // result = 5
- 函数特点:
- 必须声明返回类型(如
int
、void
)。 - 参数按值传递(修改形参不影响实参)。
5. 数组与字符数组(字符串)
(1) 数组
int arr[3] = {1, 2, 3}; // 声明长度为3的数组
printf("%d\n", arr[0]); // 访问第一个元素(下标从0开始)
(2) 字符数组(字符串)
char s[] = "Hello"; // 字符数组(自动以 '\0' 结尾)
printf("%s\n", s); // 输出字符串
- 字符串特点:
- 以
'\0'
(空字符)结尾。 - 常用库函数:
strlen
,strcpy
,strcat
(需#include <string.h>
)。
6. 输入与输出
(1) 格式化输出(printf
)
int age = 25;
printf("Age: %d, Pi: %.2f\n", age, 3.14159);
// 输出:Age: 25, Pi: 3.14
- 格式说明符:
%d
:整数。%f
:浮点数。%c
:字符。%s
:字符串。
(2) 输入(scanf
)
int num;
scanf("%d", &num); // 从键盘读取整数(注意 & 取地址符)
7. 符号常量(#define
)
#define PI 3.14159 // 定义常量(预处理阶段替换)
double area = PI * radius * radius;
8. 关键概念总结
主题 | 核心内容 |
---|---|
程序结构 | main() 函数、头文件、语句以 ; 结尾 |
变量与类型 | int , float , char ,变量声明与赋值 |
运算符 | 算术、关系(> , == )、逻辑(&& , ` |
控制流 | if-else , while , for |
函数 | 定义、调用、参数传递(值传递) |
数组与字符串 | 数组下标从0开始,字符串以 '\0' 结尾 |
输入/输出 | printf 和 scanf 的格式化使用 |
预处理指令 | #include , #define |
9. 第一章的核心目标
- 快速上手:通过简单示例理解C程序的基本结构。
- 培养直觉:熟悉变量、运算符、控制流等基础语法。
- 实践导向:强调编译、运行和调试的实际操作。
注:本章是入门引导,后续章节会深入讲解指针、结构体、内存管理等高级主题。