C++ 指针运算符



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

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

. (点) 运算符和 -> (箭头) 运算符用于引用类、结构体和联合体的各个成员。

地址运算符 &

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

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

间接运算符 *

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

下面的程序执行这两个操作

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

   var = 3000;

   // take the address of var
   ptr = &var;

   // take the value available at 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
cpp_operators.htm
广告