智玩网 智能科技

指针传递和引用传递的区别

引用传递和指针传递的区别 

引用传递和指针传递的主要区别如下:

1. 传递方式:指针传递本质上是值传递,它所传递的是一个地址值。被调用函数的形式参数被作为被调用函数的局部变量处理,会在栈中开辟内存空间以存放有主调函数传递进来的实参值,形成了实参的一个副本。而被引用传递过程中,被调函数的形式参数作为局部变量在栈中开辟了内存空间,但这时存放的是由主调函数放进的实参变量的地址。

2. 操作方式:指针传递的地址的值是可变的,同时,该地址空间中存储的值也是可变的;而引用传递却是和别名是捆绑,不可再指向其他的地址空间的。

3. 安全性:指针不是类型安全的,而引用是类型安全的。引用比指针多了类型检查,使得传参更为灵活,方便,还避免了指针使用易出错的情况。

4. 级别:指针可以有多级,即int **p是合法的;而引用只能是一级,即int && a是非法的。

5. 使用方式:如果想通过指针参数传递来改变主调函数中的相关变量,那就得使用指向指针的指针或指针引用。而引用传递,传入的是变量名称,相当于在交换函数内部使用了外部变量的别名,操作的依然是变量本身。

版权说明:文章均为账号作者发布,不代表本网站观点与立场,如有侵权请联系我们删除

热门