C++之指针运算符
取地址运算符&和间接寻址运算符*
#include <iostream>
#include <string>
using namespace std;
int main() {
system("chcp 65001");
setlocale(LC_ALL, "zh-CN");
int x = 0;
//声明时,变量前加 "基本类型 &" :声明引用变量。它是某个已存在变量的别名
//即该引用变量名称与原始变量名称都代表同一个变量(地址相同)。
int &y = x;
//声明时,变量前加 "基本类型 *" :声明指针变量。它的值是另一个变量的地址。
int *z;
z = &x;
//声明时,变量前加 "基本类型 **":声明二级指针变量。它的值是另一个一级"基本类型 *"指针变量的地址 (指针的指针)。
int **zz;
zz = &z;
cout << "x的地址:" << &x << endl
<< "声明引用变量y:" << y << endl
<< "y的地址:" << &y << endl
<< "一级指针z的值是变量x的地址:" << z << endl
<< "二级指针zz的值是一级指针z的地址:" << zz << endl
<< "一级指针z的地址:" << &z << endl
<< "二级指针zz的地址:" << &zz << endl
<< "*(简接寻址运算符)获取一级指针z所指向的变量x:" << *z << endl
<< "**获取二级指针zz所指向的一级指针z所指向的变量x:" << **zz << endl
<< "*z的地址:&x:" << &*z << endl
<< "**zz的地址:&x:" << &**zz << endl
<< "*zz的地址:&z:" << &*zz << endl;
return 0;
}
输出:
Active code page: 65001
x的地址:0x62fe14
声明引用变量y:0
y的地址:0x62fe14
一级指针z的值是变量x的地址:0x62fe14
二级指针zz的值是一级指针z的地址:0x62fe08
一级指针z的地址:0x62fe08
二级指针zz的地址:0x62fe00
*(简接寻址运算符)获取一级指针z所指向的变量x:0
**获取二级指针zz所指向的一级指针z所指向的变量x:0
*z的地址:&x:0x62fe14
**zz的地址:&x:0x62fe14
*zz的地址:&z:0x62fe08