预处理命令、指针的概念和用法是 C 语言中的重要组成部分。以下是对您提供的内容的重新表述:
预处理命令:
- 包含头文件:使用
#include
指令来包含其他文件的内容,以便在程序中使用其中的函数和宏。 - 宏定义:使用
#define
来定义宏,可以在编译之前将特定的代码片段替换为其他内容。 - 条件编译:
- 使用
#if
、#elif
和#endif
来根据条件包含或排除代码块。 - 使用
#ifndef
、#define
和#endif
来防止头文件内容被重复包含。 - 使用
#ifdef
来检查某个宏是否已经被定义,并根据结果包含代码。
- 使用
指针:
-
概念:
- 地址:内存中每个字节都有一个唯一的编号,称为地址。
- 指针:指针是存储地址的变量,它具有指向某个内存位置的能力。
- 指针变量:用于存储地址的变量,通常简称为指针。在 32 位系统中占 4 字节,在 64 位系统中占 8 字节。
-
运算符:
&
运算符:用于获取变量的内存地址。*
运算符:用于访问指针指向的内存地址中的值。
-
指针变量的使用:
- 定义:使用
数据类型* 变量名;
的格式来定义指针变量。 - 初始化:指针变量应初始化为
NULL
以避免成为野指针。 - 存储:所有类型的指针变量在 64 位操作系统中占 8 个字节。
- 定义:使用
-
指针的用法:
- 提供对变量的间接访问。
- 练习:编写程序,通过指针间接访问变量进行四则运算。
-
不同指针类型的特点:
- 指针算术运算:指针可以进行加减运算,移动指向的数据类型大小对应的字节。
*
运算符:根据指针类型解释地址空间中的数据。
-
常见的指针用法:
- 改变指针指向或修改指针指向的内存空间中的值。
-
指针作为函数参数:
- 复制传递:传递值的副本,不会影响原始变量。
- 地址传递:传递变量的地址,可以在函数内部修改原始变量的值。