Menu
CoddyTech

解引用运算符

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

现在你已经能够获取指向变量的指针,接下来需要学习如何访问和修改该内存地址中的值。这里,解引用运算符(*)就变得至关重要。解引用运算符 * 用于访问指针所指向的内存地址中存储的值。在指针变量前加上 *,它就会“跟随”该地址,并取出其中实际存储的值。请记住,取地址运算符(&)用于获取变量的内存地址,而解引用运算符(*)用于访问该地址处的值。
int number = 42;
int* ptr = &number;  // ptr 存储了 number 的地址
int value = *ptr;    // value 现在存储了 42
你也可以使用解引用运算符,通过指针修改原始变量。当你给 *ptr 赋予新值时,实际上是在更改存储在该内存位置的值:
*ptr = 100;  // 将 number 改为 100
// 虽然我们是通过 ptr 修改的,但 number 现在是 100
这种间接访问方式让指针变得如此强大:只要你有指向变量的指针,就可以在程序中的任何位置读取和修改变量。
challenge icon

挑战

简单

编写一个程序,通过指针修改变量的值,以演示解引用运算符。

将提供以下输入:

  • 一个整数,表示变量的初始值
  • 一个整数,表示要通过指针赋予变量的新值

你的程序应当:

  1. 声明一个名为 temperature 的整数变量,并将其初始化为第一个输入值
  2. 创建一个名为 tempPtr 的指针,使其指向 temperature 变量
  3. 通过解引用指针打印原始值
  4. 使用解引用运算符,通过指针将 temperature 的值改为第二个输入值
  5. 再次通过解引用指针打印新值

使用以下确切的输出格式:

Original value: [original value]
New value: [new value]

亲手试试

    // TODO:在下方编写代码
    // 1. 声明变量 temperature,并用 initialValue 初始化
    // 2. 创建指向 temperature 的指针 tempPtr
    // 3. 通过解引用指针打印原始值
    // 4. 通过指针将 temperature 的值改为 newValue
    // 5. 通过解引用指针打印新值
quiz icon自我测试

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

逻辑与流程中的所有课

自己练习: C++ 在线编译器