C++ 指针运算符怎么用?

文章导读
Previous Quiz Next C++ 提供了两种指针运算符,它们分别是 (a) 取地址运算符 & 和 (b) 间接运算符 *。
📋 目录
  1. A 取地址运算符 &
  2. B 间接运算符 *
A A

C++ 指针运算符



Previous
Quiz
Next

C++ 提供了两种指针运算符,它们分别是 (a) 取地址运算符 & 和 (b) 间接运算符 *。

指针是一个包含另一个变量地址的变量,或者说,包含另一个变量地址的变量被称为“指向”另一个变量。变量可以是任何数据类型,包括对象、结构体,或者另一个指针本身。

.(点)运算符和 ->(箭头)运算符用于引用 class、structure 和 union 的单个成员。

取地址运算符 &

& 是一个一元运算符,返回其操作数的内存地址。例如,如果 var 是一个整数变量,那么 &var 就是它的地址。该运算符与其他一元运算符具有相同的优先级和从右到左的结合性。

你应该将 & 运算符读作 “...的地址”,这意味着 &var 将被读作“var 的地址”。

间接运算符 *

第二个运算符是间接运算符 *,它是 & 的补运算符。它是一个一元运算符,返回位于其操作数指定地址的变量的值。

以下程序执行了这两个操作

#include <iostream>
 
using namespace std;
 
int main () {
   int  var;
   int  *ptr;
   int  val;

   var = 3000;

   // 获取 var 的地址
   ptr = &var;

   // 获取 ptr 处的值
   val = *ptr;
   cout << "Value of var :" << var << endl;
   cout << "Value of ptr :" << ptr << endl;
   cout << "Value of val :" << val << endl;

   return 0;
}

当上述代码被编译并执行时,它会产生以下结果 −

Value of var :3000
Value of ptr :0xbff64494
Value of val :3000