一. 指针
1.
int *p = new int(100);//注意()是表示的是指针初始化,即表示p指向100
int *P = new int[3];//这里才是创建了一个数组类似于P[3];
delete[]P; //数组的释放方式
但是书上也说使用delete P释放数组也可以,只是不提倡,不会出现内存泄漏,但是对于类对象数组来说,这样常行不通(如果类包含有在堆中分配的数据成员,必须用delete[]P来释放数组)
2. int *p = new int[3];
int n = 10;
p = &n;//p最初在堆中分配了一个空间,现在又指向了n,这样堆上的空间无法释放
3.指针数组:
char *p[3] = { "1", "2", "40" };
cout << p[0] << endl; //合法的,分别指向不同的字符常量,也可以通过new来为其分配空间
- 指向函数的指针(回调函数常通过函数指针实现)
int(*p)(int, int);
p = sum; //其中sum是一个函数,且参数为(int,int)