&
:取地址
*
: 解引用,
两者之间互为反向操作
int a = 100;
int& b = a; // 定义一个【引用】
int* a_ptr = &a; // 定义一个【指针】
int*& a_ptr_ref = a_ptr; //将一个【指针引用】和一个指针绑定起来,那么a_ptr_ref就是一个【指针引用 】
cout << "示例:\n";
cout << "a 的值: " << a << endl;
cout << "b 的值: " << b << endl;
cout << "a_ptr所指向的内存地址 &a : " << &a << endl; // 【取地址】
cout << "指针a_ptr所指向的内存地址 a_ptr : " << a_ptr << endl; //
cout << "对*a_ptr指向的内容的取地址 &*a_ptr: " << &*a_ptr << endl; // 【注意:a_ptr = &a = &*a_ptr 】
cout << "获取指针a_ptr指向地址的内容 *a_ptr : " << *a_ptr << endl; // 【解引用】
cout << "获取指针a_ptr的地址 &a_ptr : " << &a_ptr << endl;
cout << "\n";
cout << "获取指针引用a_ptr_ref 的地址 a_ptr_ref : " << a_ptr_ref << endl; // 【指针引用a_ptr_ref】同样指向
cout << "\n";
cout << " (&)取地址 和 (*)解引用,互为反向操作因此,可以推理出,&*&*ptr依旧还是val的地址:\n" << &*&*a_ptr << endl;