C++ 函数调用时的三种参数传递方式
2018-06-03 本文已影响0人
iOS佥
C++ 函数调用时的三种参数传递方式
[TOC]
为了又一年校招季,准备开始刷题了。决定使用 C++,那么先复习一下,对一些编程中可能遇到的问题填一下坑吧!!!
原理方面不在文章中深究,主要复习一下用法
在 C++ 中,参数传递的方式有三种:
1. 按值传递
2. 地址传递
3. 引用传递
其中,1 和 2 的方式与 C 语言相同。以最简单的 swap 函数为例。
1.按值传递
只改变形参的值,不改变实参的值。
void swap1(int x, int y) {
int t = x;
x = y;
y = t;
}
使用方法:
swap1(a, b)
2.地址传递
通过指针间接访问,改变实参的值
void swap2(int *x, int *y) {
int t = *x;
*x = *y;
*y = t;
}
使用方法:
swap2(&a, &b)
3.引用传递
形参和实参一起改变值
void swap3(int &x, int &y) {
int t = x;
x = y;
y = t;
}
使用方法:
swap3(a, b)
拓展一下,OC 中的这种情况
发现在 OC 中是方式1和2和上面所说的是一样的,但是不包含方式3。因为 OC 还是基于 C 语法。
但是在 OC++(Objective-C++)中,方式1、2、3都与上述一样。