这个文档是2024年7月2日创建的一个练习文件或草稿,可能包含学习、工作或其他项目的初步尝试和思考。
根据提供的文件信息,可以提炼出以下几个主要的知识点:
### 1. C语言基础与运算符
#### C语言代码结构示例
```c
#include
int main(int argc, char *argv[]){
int a = 10; // 定义变量a并赋值为10
int b = a--; // 定义变量b,并将a的值赋给b(此时a的值为10),然后a的值自减1变为9
int c = a + b + 2; // 计算表达式a + b + 2,其中a为9,b为10,所以c的值为21
int d = (b--) + (++c); // 计算表达式(b--) + (++c),此时b为10,c为21,先进行++c操作使c变为22,再进行b--操作使b变为9
printf(%d\n, d); // 输出d的值,即32
}
```
这段代码的主要目的是演示不同运算符的应用,包括赋值运算符 `=`、递减运算符 `--`、加法运算符 `+` 和逗号运算符 `,`。
#### 运算结果分析
在该程序中,变量d的最终值为32。具体原因如下:
- 变量b的初始值为10;
- 变量c的初始值为21;
- 在计算 d 的时候,先执行 b-- 使 b 的值减一变为9,并返回之前的旧值即10;接着进行 ++c 操作让 c 增加到22。因此,d 的值是 `10 + 22 = 32`。
### 2. 文件操作与编辑器基础
#### Vi 编辑器常用命令
- 使用 `touch test1.c` 创建一个名为 `test1.c` 的空文件。
- 使用 `vi test1.c` 打开或创建 `test1.c` 文件以进行编辑。
- 使用 `cat test1.c` 在终端显示 `test1.c` 文件的内容。
- 使用 `head test1.c` 显示该文件的前 10 行内容,用命令行工具查看文件头信息。
- 使用 `tail test1.c` 显示该文件最后 10 行内容。
这些命令有助于进行文件创建、编辑及内容查看等操作。
### 3. C语言预处理指令与编译过程
#### 预处理指令
- `#include `:引入标准输入输出库。
- `#include example.h`:引入用户自定义的头文件。
#### 编译过程
1. **预处理** (`gcc -E test.c -o test.i`):展开宏定义,替换包含的头文件,并移除注释;
2. **编译** (`gcc -S test.i -o test.s`):检查语法错误并生成汇编代码;
3. **汇编** (`gcc -c test.s -o test.o`):将汇编语言翻译为机器码,但尚未链接外部库或其它目标文件。
4. **链接** (`gcc test.o -o test`):将目标文件和库函数连接起来形成可执行程序。
整个过程确保了源代码被正确地转换成可以运行的格式。
### 4. 数据单位与进制转换
#### 数据单位
- 字节 (Byte) = 8位(bit)
- KB = 1024B
- MB = 1024KB
- GB = 1024MB
- TB = 1024GB
#### 进制转换规则:
- 将二进制数 `1010110` 转换成八进制得到 `56`
- 八进制的 `753` 对应于二进制的 `111 101 011`
- 十六进制表示为 `8a` 的数转换成二进制是 `1000 1010`
这些转换有助于理解不同基数系统之间的关系。
### 5. 关键字与标识符
#### 关键字
- 存储类型:`auto`, `static`, `extern`, `register`
- 数据类型:`int`, `char`, `float`, `short`, `long`, `double`, `signed`, `unsigned`
- 构造数据类型:`struct`, `enum`, `union`
- 分支控制语句:`if`, `else`, `switch-case`
- 循环结构:`for, do while, while`
- 其他关键字: 如 void, const