#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++ 被解析为预处理标记。这些标记之间的任何空格都没有意义。
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) {
我想第三种情况可能是你最熟悉的了。