1,指针作为函数参数,
指针可以指向内存中任意一个数据,通过间接引用能够在函数内修改函数外甚至系统中的数据;
为了避免指针作为函数参数导致数据被意外修改,我们可以使用const来保护指针所指向的数据;
2,指针作为函数返回值,
同别的数据类型int,float一样,指针也能够作为函数的一种返回值类型,把返回指针的函数称为指针函数;
返回的指针所指向的数据不能够是函数内部声明的变量;
更灵活的存储,使用数组的时候面临种尴尬:数组的存储空间必须在程序运行前申请,即数组的大小在编译前必须是已知的常量表达式;
空间申请太大造成空间浪费,太小又会造成数据溢出;
所有此处需谨慎,切实的根据实际情况申请内存空间
C++中,允许我们在程序运行时根据自己的需要申请一定的内存空间,称为堆内存空间(heap)
用new操作符来申请堆内存空间;
数据溢出(data foolding)-->指程序运行时将数据存放到较小的空间,
内存泄露(Memory leak)-->只申请内存空间不释放内存空间的情况称为内存泄露,此处申请的空间一般指的是堆内存空间;
释放堆内存空间,delete操作符
delete [] 指向堆内存首元素的指针;
实践测试堆内存空间的申请和回收;
堆内存数组和普通数组在使用上并无区别;
原文地址:http://www.cnblogs.com/ruiy/p/heap.html