1 new 建立一个堆对象
new 类名(初值列表) 返回一个指针
int * p=new int(3)动态分配
2 delete 释放指针
delete p;
delete [] p ;释放动态申请的数组
3 new delete和 malloc free
malloc free属于c、c++标准库函数 new delete属于操作符
malloc free只针对内部数据类型的对象;new delete 动态创建的对象
4 const 常量附值时必须初始化
5 引用和指针
int a; int& p; int* q; a=p; q=&a;
p是引用,q是地址
指针在没用给地址之前,不能直接附值
6 函数参数传递
值传递 地址传递 引用传递
值传递 地址传递 只是传递一个副本,所以传递应该是指针的指针
引用传递是传递本身
7 局部数组 和全局数组
char * stra()
{ char *c=new char(10);return c; } // 局部变量存的是一个*c,即4B字节的指针,它指向的内容存储在全局存储区内,返回当前指针,可以操作其指向的内容
char * stra()
{ char c[]=new char(10);return c; } // 局部变量存的是 一个数组 占10个字节,返回指针后,存储内容可能被回收,返回指针没有意义
8 指针和句柄
指针是标记某个物理地址
句柄则是标记系统资源,隐藏系统信息。句柄地址(32位整数)——》对象在内存中的地址(不稳定)——》实际对象