C++ 指针运算符
C++ 提供了两个指针运算符,分别是 (a) 寻址运算符 & 和 (b) 间接寻址运算符 *。
指针是一个包含另一个变量地址的变量,或者说,包含另一个变量地址的变量被称为"指向"另一个变量。变量可以是任何数据类型,包括对象、结构体,或者指针本身。
.(点)运算符和 ->(箭头)运算符用于引用类、结构体和联合体中的各个成员。
寻址运算符 &
& 是一个一元运算符,它返回其操作数的内存地址。例如,如果 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