指针
void*指针
void*指针可以保存任何类型的对象地址,不过void*指针不能修改指向对象的值.
创建动态数组
c++语言中,可以使用new和delete实现动态内存的创建和销毁
动态数组的定义
例:int* pia=new int[10];//分配了一个10个int型元素数组,并返回该数组元素的第一个指针.用于初始化pia指针
初始化动态分配数组
int* pia=new int[10]();//10个元素初始化为0
int* pia=new int[10](5);//10个元素初始化为5
const对象的动态数组
const int* pci_bad=new const int[100];//错,没有初始化值
cosnt int* pci_ok=new const int[100]();//对,初始化了.没有动态分配的初始化时,此类型必须提供默认构造函数
动态空间释放
delete [] pia;//不能少了方括号
新旧代码兼容
混合使用string和c风格字符串
string st("abc");
const char* str=st.c_str()//返回第一个元素的const char*指针并以结束符null结束.
使用数组初始化vector对象
int array[6]={1,2,3,4,5,6};
vector<int> vc(array,array+6);
指针和多维数组
int ia[3][4];
int (*ip)[4]=&ia[2];//圆括号不能少,指向第2列4个元素的数组 从内往外阅读*ip是一个int [4]类型-ip是一个指向4个元素数组的指针.
用typedef简化指向多维数组的指针
typedef int int_array[4];
int_array *ip=ia;