Menu
CoddyTech

取地址运算符(&)

本课属于 Coddy C 学习旅程的“逻辑与流程”单元。第 3 课,共 63 课。

现在你已经会声明指针,接下来需要学习如何将内存地址实际存储到指针中。取地址运算符(&)是获取任意变量内存地址的关键。

在变量名前面放置 & 运算符,它会返回存储该变量的内存地址。你可以把它想成是在问:“这个变量在内存中的什么位置?”

int age = 25;
int *ptr;
ptr = &age;    // 将 'age' 的地址存入 'ptr'

在这个示例中,&age 给出 age 变量的内存地址。然后,我们将这个地址赋给指针 ptr。现在,ptr“指向”age 变量。

取地址运算符非常重要,因为它连接了普通变量和指针。没有它,你就无法告诉指针要指向哪个变量。记住,数据类型必须匹配,你只能把整数的地址赋给声明为指向整数的指针。

challenge icon

挑战

简单

编写一个 C 程序,演示如何使用取地址运算符将变量与指针关联起来。程序应完成以下操作:

  1. 声明一个名为 number 的整数变量,并将其初始化为值 42
  2. 声明一个名为 letter 的字符变量,并将其初始化为值 'X'
  3. 声明一个名为 num_ptr 的整型指针
  4. 声明一个名为 char_ptr 的字符指针
  5. 使用取地址运算符,将 number 的地址赋给 num_ptr
  6. 使用取地址运算符,将 letter 的地址赋给 char_ptr
  7. 使用 printf 和 %p 格式说明符,打印两个指针中存储的地址

你的输出应按以下格式显示指针地址:

Address of number: [address]
Address of letter: [address]

每次运行程序时,实际内存地址可能不同,但格式和标签必须与上方完全一致。[address] 是打印出的地址的占位符:不要打印方括号。

亲手试试

#include <stdio.h>

int main() {
    // TODO:在这里编写你的代码
    // 1. 声明并初始化变量
    // 2. 声明指针
    // 3. 使用取地址运算符赋值地址
    // 4. 按照所示格式打印地址
    
    return 0;
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: C 在线编译器