C++ 引用形参和指针形参
2015-09-26 12:48
316 查看
从引用形参和非引用形参的区别来看,似乎任何时候使用引用形参都指针好, 既少了实参到形参拷贝的开消,也同样可以操作(非const )实参。
那指针形参有没有什么优点呢?
1. 指针形参比引用形参更能清晰的向函数调用者表明函数可能会修改实参数
void f1(int * a);
void f2(int &a);
int main()
{
int b=10;
f1(&b);
f2(b);
}
在函数定义不可知或没有查看函数定义时,指针形参的函数调用传递的是地址, 非常明显的表明函数可能会修改实参。而引用形参的调用和普通形参的调用一样,没有这个效果
=======================================================
对于引用,有以下三条规则:
(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。
(2)不能有NULL 引用,引用必须与合法的存储单元关联(指针则可以是NULL)。
(3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。
那指针形参有没有什么优点呢?
1. 指针形参比引用形参更能清晰的向函数调用者表明函数可能会修改实参数
void f1(int * a);
void f2(int &a);
int main()
{
int b=10;
f1(&b);
f2(b);
}
在函数定义不可知或没有查看函数定义时,指针形参的函数调用传递的是地址, 非常明显的表明函数可能会修改实参。而引用形参的调用和普通形参的调用一样,没有这个效果
=======================================================
对于引用,有以下三条规则:
(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。
(2)不能有NULL 引用,引用必须与合法的存储单元关联(指针则可以是NULL)。
(3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。
相关文章推荐
- C++隐式类型转换
- 《C++primer(第五版)》学习之路-第十一章:关联容器
- 关于计算struct结构体占用空间
- C语言实现变长数组
- c++primer plus第十四章-多重继承、模板类
- 解码
- Stick
- VC++ 下FFT试验
- C++文件中读单词并统计输出改单词及其个数
- C++ string类型的split字符串分割函数
- C++ Primer Plus第六版 第十一章 编程练习答案
- C++的几种强制类型转换
- C++ 虚函数表解析
- C/C++笔试准备(1)
- C语言中 .h文件和.c文件的区别
- C语言复习day2
- c的free和c++的delete的区别
- C语言里面 sizeof 的使用
- c/c++程序调试
- C++中的头文件和源文件