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