变量是编译时分配内存的有名称的内存。 而指针只是为可以通过名称直接访问的内存提供了一个别名。指针的真正用武之地在于在运行阶段分配未命名的内存以存储值。在这种情况下,只能通过指针来访问内存。
首先new找到一块长度正确的内存块,并返回该内存的地址; 然后程序员的责任是将该内存地址赋值给一个指针。如: 方式一: int * pn=new int; delete pn; 方式二: int higgens; int * pt=&higgens; delete pt;
第一种情况下只能通过指针来访问; 第二种情况可以通过higgens来访问该int.
为一个数据对象(可以是结构,也可以是基本类型)获得并指定分配内存的通用格式如下:
typeName * pointer_name = new typeName ; ... delete pointer_name ;new运算符返回第一个元旦的地址,改地址被赋值给指针ps. 方括号[]告诉程序,应该释放整个数组,而不仅仅是指针指向的元素。 为数组分配内存的通用格式如下:
typeName * pointer_name = new typeName [num_elements] ; ... delete [] pointer_name ;