在这里我们首先要明确指针是一个变量,其存储的是值的地址,而不是值本身。
常规地址变量应用地址运算符(&)就可以获得它的位置,例如a是一个变量,则&a就是它的地址。
由于指针名表示的是地址。*运算符被称为间接值或者解除引用运算符,将其应用于指针,可以得到该地址处存储的值,假如pt是一个指针,则pt表示一个地址,*pt表示存储在改地址的值。下面程序掩饰了如何声明指针和其代表的含义。
#include<iostream>
int main()
{
using namesapce std;
int updates=6;
int *p_updates;
p_updates=&updates;
cout<<"Values: updates="<<updates;
cout<<", *p_updates="<<*p_updates<<endl;
cout<<"Address: &updates="<<&updates;
cout<<", p_updates="<<p_updates<<endl;
*p_updates=*p_updates+1;
cout<<"Now updates="<<updates<<endl;
return 0;
}
下面是程序的运行结果:
Values: updates=6, *p_updates=6;
Addresses: &updates=0X0065fd48,p_updates=0X0065fd48;
Now updates=7