C++:指针作函数参数的情况

来源:互联网 发布:mac pro 文件夹 编辑:程序博客网 时间:2024/05/21 09:26

指针作为函数参数,扮演的是值传递还是地址传递的角色,要看指针变量在函数里面是如何被使用。

1)如果对其使用取地址符号&,则是地址传递。意味着你要操纵传过来的地址所指向的值。

2)如果直接使用变量名,则是值传递。意味着你所改变的,只不过是所声明的那个局部变量的值。

扮演什么角色和如何传进来值是没什么关系的。比如对于一维指针变量,你要么传int *a,要么你传一个&a,如果你传别的类型,编译器会和你过不去的。

往设计语言的角度去考虑,其实所谓值传递和地址传递,主要是用来完成函数和外界交互的两种主要方式:

1)值传递:函数只接受外界的输入,只能通过返回值来输出。

2)地址传递:函数可以接受更多、更复杂的输入,还可以通过指针来作更复杂的输出。

一种是很简单的情况,你可以用来处理相当一部分情况;一种是可以很复杂的情况,你可以拥有随心所欲的权利,只不过,你多了管理指针的内存的义务。

得到越多,付出越多!