这里函数声明之前的&的目的是什么?

问题描述 投票:0回答:1
#include <simplecpp>

int &f(int &x, int &y) {
    if (x > y) return x;
    else return y;
}

main_program{
    int p=5, q=4;
    f(p,q) = 2;
    cout << p << ' ' << q << endl;
    cout << f(p, q) << endl;
}

(这是用于教学生的 C++ 的一个简单版本)。我无法理解的是函数声明之前的 & 。它到底在做什么?

c++ reference
1个回答
0
投票

C++ 被解析为预处理标记。这些标记之间的任何空格都没有意义。

int
是一个标记(关键字),
&
是一个标记(运算符),
f
是一个标记(标识符)。

因此,以下所有内容完全相同且具有相同的含义:

int&f(int &x, int &y) {

int &f(int &x, int &y) {

int& f(int &x, int &y) {

int & f(int &x, int &y) {

我想第三种情况可能是你最熟悉的了。

© www.soinside.com 2019 - 2024. All rights reserved.