1. 指针的概念
-
在计算机中,内存是由若干存储单元组成的,每个存储单元均有一个唯一的编号用于标识该存储单元,该编号称为存储单元的地址。
-
在C++中,数据是用变量或数组等形式存放在存储器中的。
-
如int a,该语句定义了整形变量a,编译系统将为变量a分配内存单元,用于存放整数。假设编译系统为变量a分配的内存单元地址为2014,则为a分配的存储单元(首)地址2014称为变量的指针。
-
所谓指针就是变量、数组、函数等的内存地址。
-
专门用于存放内存单元地址(即指针)的变量称为指针变量。
-
引入指针变量的目的是提供一种对变量进行间接访问的手段。指针变量必须先说明后使用。
2. 代码示例
- 运行结果
C++
#include
using namespace std;
void main()
{
int m, n, *p1 = &m, *p2 = &n, *phint = NULL;
m = 1;
n = 2;
cout << "*p1=" << *p1 << ",*p2=" << *p2 << endl; //*p1为取到的内容
cout << "p1=" << p1 << ",p2=" << p2 << endl; //p1为内存地址
cout << "m=" << m << ",n=" << n << endl;
cout << "phint=" << phint << endl; //空指针phint内存地址为(0x)00000000
*p1 += 3;
p2 = p1;
*p2 *= 4;
phint = p2;
cout << "*p1=" << *p1 << ",*p2=" << *p2 << endl;
//p1 p2指向同一个地址,经过*p2 *= 4操作后,该内存中的数据改变了
cout << "p1=" << p1 << ",p2=" << p2 << endl;
cout << "m=" << m << ",n=" << n << endl;
cout << "phint=" << phint << endl;
system("pause");
}
</code></pre>