1. 指向指针的引用
(1)形式:int swap(int *&p1,int *&p2)
(2)作用:当需要交换两个指针指向的内容时。
2. vector和其他容器类型的参数
(1)可以将函数形参定义为引用类型。
(2)通过传递对应容器的迭代器来实现容器的传递。
3. 数组形参
(1)形式: -------------->int *
(2)第三种方式不推荐使用,原因是如果传递的实参数组个数小于形参的长度,则造成数组访问越界。
(3)通过引用传递数组,括号是必须的,原因是[]的优先级比()高,如果实参的数组长度小于形参的,则函数调用失败。
void PrintValues(int (arry&)[10]
(4)多维数组
4. int *matrix[10]和int (*matrix)[10]的理解:可以从操作符的优先级上考虑
int *matrix[10],数组中包含10个指向int的指针
int (*matrix)[10], (*matrix)可以理解为一个地址,这个地址可能是一维数组,也可能是多维数组,而数组中的元素是10int型的元素。
5. 如何避免实参传递的数组长度小于形参定义的数组长度:
(1)采用C++标准库规范。即:给函数的形参定义一个结束标志符(a.end())。
(1) 在形参中定义数组的长度:
6. C++ main函数详解
http://blog.csdn.net/hgl868/article/details/7057744
7. 函数的返回值:原因是局部对象的指针或者引用在函数调用完成之后,局部变量就被销毁了,而指针指向的地址就变成不可预知的,引用的对象也是。
(1)不能返回局部对象的引用
(2)不能返回局部对象的指针