- 指针是什么东西
下面是一条指向整型变量的指针的声明语句
int *pi;
注意,声明后的pi是一个指针,同时它也是一个变量,也会存放在内存里,如下图所示
继续看代码
pi = &i;
考虑到&i是给出变量i的内存地址,这行代码也就非常清楚了,意思是将i的内存地址赋值给(指针变量)pi,此时pi就相当于那张电影票,赋值后它存储的内存地址就是电影票上的编号(方便寻找)。
结果如下图所示
最后一句代码
printf("%d", *pi);
*运算符被称为间接值(indirect velue)或解除引用(dereferencing)运算符,将其应用于指针,可以得到该地址处存储的值
显然输出后的结果是30
我们看一个完整的C++代码以及运行结果
//代码2.1
#include <iostream>
int main()
{
using namespace std;
int a,*pa;
a = 10;
pa = &a;
*pa = 20;
cout << a <<endl;
}
注意,此时*取值运算符比=赋值符优先级要高