在这种情况下,为函数赋值有什么用?

时间:2016-01-18 15:33:08

标签: c++ pointers

我无法理解此代码中compare(a,b)=-1;的作用。我所看到的是,这个值(-1)被分配给较低的编号。变量

#include <iostream>
#include <stdlib.h>

using namespace std;

int &compare(int &c ,int &d) {
   if (c>d)
      return c;
   else
      return d;
} 

int main(int argc, char const *argv[]) {
   int a,b,j;
   std::cin >> a>>b;
   compare(a,b)=-1;
   std::cout <<a<<b<<std::endl;
}

1 个答案:

答案 0 :(得分:1)

该函数返回对较大参数的引用,以便可以对其进行修改。

如果compare(a,b)(分别为a)大于b,则

a会返回对b(分别为b)的引用( resp。a),compare(a,b) = -1-1分配给函数结果(最大元素)。

例如:

a = 1;
b = 2;
compare(a,b) = -1;

在此之后我们有:a=1, b=-1