正确的理解和使用指针是能否成功的使用C/C++进行编程的关键.这样讲有三个原因:第一,指针提供了函数修改实参的途径.第二,指针支持动态内存分配.第三,对于某些特定的例程,指针可以增加运行的效率.你在第二部分将会看到,指针还有其它许多重要的作用.
指针是C/C++中最强大也是最危险的特性.例如,未经初始化的指针有可能导致系统崩溃.也许更严重的是,使用指针的不慎,可能产生无法找到的程序漏洞.
因为指针的重要性和潜在的弊端,本章将对指针进行细节的讲解.
什么是指针?
指针就是一个用来存储内存地址的变量.这个地址是另一个对象(最典型的就是变量)在内存中的地址.例如,假如一个变量中存储的值是另一个变量在内存中的地址,前者就被称为指向后者. 请看图5-1:
Memory address Variable in memory
1000 | 1003 |
1001 | |
1002 | |
1003 | |
1004 | |
1005 | |
1006 |
.
.
.
Memory
地址为1000的变量,指向地址为1003的对象.