参数传递有两种方式
1.值传递
2.地址传递
- 1.参数为指针变量
- 2.参数为引用类型
- 3.参数为数组名
把实参的值传送给局部工作区相应的副本中,函数使用这个副本执行必要的功能。函数修改的是副本的值,实参的值不变。
void main() {float a,b; cin>>a>>b; swap(a,b); cout<地址传递 指针变量作参数 1.形参变化影响实参
当被调用函数执行完毕,那么m,n从内存中就释放了,返回到函数调用的地方,a,b并没有改变。void main() {float a,b,*p1,*p2; cin>>a>>b; p1=&a;p2=&b; swap(p1,p2); cout< 形参变化不影响实参void main() {float a,b,*p1,*p2; cin>>a>>b; p1=&a;p2=&b; swap(p1,p2); cout< 数组名做参数传递的是数组的首地址
对形参数组所做的任何改变都将反映到实参数组中void main (void){ char a[10]="hello"; sub(a); cout<输出是:world
引用类型做参数void main(){ float a,b; cin>>a>>b; swap(a,b); cout<
- 引用类型可以简单地理解为共用同一个地址
- 引用类型作形参,在内存中并没有产生实参的副本,它直接对实参 *** 作;而一般变量作参数,形参和实参占用不同的存储单元。因此,当参数传递的数据量大时,用引用传递的时间和空间效率比较好。
- 指针参数容易产生错误阅读性差
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)