Created
January 19, 2022 09:42
-
-
Save kougazhang/5f1ef6bd153f67758aaf2475f4da34e1 to your computer and use it in GitHub Desktop.
#c++ #pointer
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
输出:
value of var: 3000
value of ptr: 0x7ffee64d2f98
value of val: 3000 // 从这个输出可知,* 间接寻址运算符能获取内存地址所指向的变量值