C++三种不同的值传递形式

1.在内存中有地址和值两种,

值传递只是把变量的值复制给形参

引用传递只是把变量的地址复制给形参,在另一个函数中直接操作地址

指针传递是在一个形参中将实参的地址赋值给形参的值

指针传递与引用传递的区别:

(指针传递本质上时值传递)

1.引用传递在使用前必须被初始化,指针传递则可以在任意时候被初始化

2.指针传递是一个指针可以指向别的变量,也可以指向NULL,而引用传递只能使用形参传递过来的地址变量

特殊用法:当在一个局部函数中只能返回一个值给主函数,实际需要返回多个函数值,这时就可以使用引用传递或者指针传递。

★相同点:

●都是地址的概念;

指针指向一块内存,它的内容是所指内存的地址;而引用则是某块内存的别名。

★不同点:

●指针是一个实体,而引用仅是个别名;

●引用只能在定义时被初始化一次,之后不可变;指针可变;引用“从一而终”,指针可以“见异思迁”;

●引用没有const,指针有const,const的指针不可变;(具体指没有int& const a这种形式,而const int& a是有     的,  前者指引用本身即别名不可以改变,这是当然的,所以不需要这种形式,后者指引用所指的值不可以改变)

●引用不能为空,指针可以为空;

●“sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身的大小;

●指针和引用的自增(++)运算意义不一样;

●引用是类型安全的,而指针不是 (引用比指针多了类型检查)

发布了9 篇原创文章 · 获赞 2 · 访问量 966

猜你喜欢

转载自blog.csdn.net/qq_34072169/article/details/103979640