Skip to content

Instantly share code, notes, and snippets.

@kougazhang
Created January 19, 2022 09:42
Show Gist options
  • Save kougazhang/5f1ef6bd153f67758aaf2475f4da34e1 to your computer and use it in GitHub Desktop.
Save kougazhang/5f1ef6bd153f67758aaf2475f4da34e1 to your computer and use it in GitHub Desktop.
#c++ #pointer
// C++ 提供了两种指针运算符,一种是地址运算符 &, 一种是间接寻址运算符 *
// 指针是一个包含了另一个变量地址的变量,你可以把一个包含了另一个变量地址的变量说成是 “指向” 另一个变量
// 变量可以是任意的数据类型,包含对象、结构或指针。
//
// 取地址运算符 &
// & 是一元运算符,返回操作数的内存地址。例如,如果 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;
}
@kougazhang
Copy link
Author

输出:

value of var: 3000
value of ptr: 0x7ffee64d2f98
value of val: 3000 // 从这个输出可知,* 间接寻址运算符能获取内存地址所指向的变量值

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment