C++ 指针运算符(& 和 *)
C++ 提供了两种指针运算符,一种是取地址运算符 &
,一种是间接寻址运算符 *
取地址运算符 &
& 是一元运算符,返回操作数的内存地址。
例如,如果 var 是一个整型变量,则 &var 是它的地址。
取地址运算符 &
与其他一元运算符具有相同的优先级,在运算时它是从右向左顺序进行的
间接寻址运算符 *
间接寻址运算符 *
是 & 运算符的补充
- 是一元运算符,返回操作数所指定地址的变量的值
范例
/** * file: main.cpp * author: 简单教程(www.twle.cn) * * Copyright © 2015-2065 www.twle.cn. All rights reserved. */ #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; }
编译和运行以上范例,输出结果如下:
$ g++ main.cpp && ./a.out Value of var :3000 Value of ptr :0x7fff5955c2b8 Value of val :3000