取地址运算符(&)
本课属于 Coddy C 学习旅程的“逻辑与流程”单元。第 3 课,共 63 课。
现在你已经会声明指针,接下来需要学习如何将内存地址实际存储到指针中。取地址运算符(&)是获取任意变量内存地址的关键。
在变量名前面放置 & 运算符,它会返回存储该变量的内存地址。你可以把它想成是在问:“这个变量在内存中的什么位置?”
int age = 25;
int *ptr;
ptr = &age; // 将 'age' 的地址存入 'ptr'在这个示例中,&age 给出 age 变量的内存地址。然后,我们将这个地址赋给指针 ptr。现在,ptr“指向”age 变量。
取地址运算符非常重要,因为它连接了普通变量和指针。没有它,你就无法告诉指针要指向哪个变量。记住,数据类型必须匹配,你只能把整数的地址赋给声明为指向整数的指针。
挑战
简单编写一个 C 程序,演示如何使用取地址运算符将变量与指针关联起来。程序应完成以下操作:
- 声明一个名为
number的整数变量,并将其初始化为值 42 - 声明一个名为
letter的字符变量,并将其初始化为值 'X' - 声明一个名为
num_ptr的整型指针 - 声明一个名为
char_ptr的字符指针 - 使用取地址运算符,将
number的地址赋给num_ptr - 使用取地址运算符,将
letter的地址赋给char_ptr - 使用
printf和%p格式说明符,打印两个指针中存储的地址
你的输出应按以下格式显示指针地址:
Address of number: [address]
Address of letter: [address]每次运行程序时,实际内存地址可能不同,但格式和标签必须与上方完全一致。[address] 是打印出的地址的占位符:不要打印方括号。
亲手试试
#include <stdio.h>
int main() {
// TODO:在这里编写你的代码
// 1. 声明并初始化变量
// 2. 声明指针
// 3. 使用取地址运算符赋值地址
// 4. 按照所示格式打印地址
return 0;
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: C 在线编译器