校招备战笔记

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都与上述一样。

上一篇下一篇

猜你喜欢

热点阅读