按大类可以分为:
1.数组:
1.类中的数组,类中的数组被当作一组变量来看待。
2.函数参数中的数组,形参数组被当作是指针。
3.new 和 delete 意思是释放指针所指向对象所占的内存空间,然后调用构造和析构函数。
4.如果指针是一组数:
int * p=new int[n];
那么必须调用对应的:
delete [] p来释放。(如果n=1,则可以delete p;但是最好不要这么做);
2.指针:
1.定义指针的引用 :
但是下面这句话会出错:
int * &p=new int(10);
错误代码为:
cannot convert from 'int *' to 'int *& '
我理解为:
new int(10);
返回的是一个地址,也就是int const *:
而且是个临时变量,因此不能被引用。
3.指向指针的指针。
int * *p;
4.指向数组的指针。
int *p [3];
读法为:p 是一个指针数组,这个指针的类型为 int.
【】修饰的东西为 *;
也就是说,一个下标总修饰变量右边第一个类型指示。
4.1.指针数组
int (*p)[3];
读法为:
p是一个指针。指向了int [3]数组。
5.指向数组的引用。
int (&p) [3];
读法为:
p是一个引用,指向了int[3];
5.1.引用数组:
int & p[3];
错误消息:
arrays of references are illegal
想法不错。。可惜是非法的。
7.数组的数组。
数组的数组也就是多维数组。
如何遍历:
定义个指向数组的指针便可。