指针其实就是一个变量,和其他类型的变量是一样的,它是一个占用四字节的变量(32位机上),与其他变量的不同之处就在于它的就是值是一个内存地址,指向内存的另外一个地方。而引用则是变量的一个别名。
【例1】
#include <iostream>
using namespace std;
void main()
{
int ival = 2014;
int *pi = &ival;
int &rval = ival;
int jval = 4096;
int xval = 8192;
cout << "ival = " << ival << "\t";
cout << "&ival = " << &ival << "\t";
cout << endl;
cout << "pi = " << pi << "\t";
cout << "&pi = " << &pi << "\t";
cout << "*pi = " << *pi << "\t";
cout << endl;
cout << "rval = " << rval << "\t";
cout << "&rval = " << &rval << "\t";
cout << endl;
cout << "jval = " << jval << "\t";
cout << "&jval = " << &jval << "\t";
cout << endl;
}
【输出】:
【解析】:
上述代码中,定义了指针pi和引用rval,pi是一个指针变量,它指向整型变量ival,但pi本身的值为一个十六进制的地址值,而&pi为存储该地址值的地址,*pi则为整型变量ival的值,其是整型变量ival的一个别名,因此,&val的值即为存储变量ival的值,都是指存储ival变量的地址。