指针函数混淆C++

doc*_*jay 0 c++ pointers

我正在努力通过跳转到C++,我刚刚到达指针部分,因此,我的第一面墙.我正试图解决这个问题:

问题13.4

编写一个带有两个输入参数的函数,并为调用者提供两个单独的结果,一个是两个参数相乘的结果,另一个是添加它们的结果.由于您只能直接从函数返回一个值,因此您需要通过指针或引用参数返回第二个值.

我真的不明白这个问题.我需要编写一个函数,例如:

int function(int x, int y){
    int addition = x + y;
    int multi = x * y;
}
Run Code Online (Sandbox Code Playgroud)

但是,因为我不完全理解我不知道如何适应指针的问题.如果有人能为我愚蠢,我将不胜感激.

谢谢你的时间!

cxy*_*zs7 5

你可以试试

  int functionPtr(int x, int y? int* addition) {
    // As JustSid mentioned in the comment, it would be good to check the pointer first
    if (addition) {
      *addition = x + y;
    }
    return x * y;
  }
Run Code Online (Sandbox Code Playgroud)

要么

  int functionRef(int x, int y? int& addition){
    addition = x + y;
    return x * y;
  }
Run Code Online (Sandbox Code Playgroud)

而当你想打电话给他们

int x = 1;
int y = 2;
int addition1 = 0;
int multi = functionPtr(x, y, &addition1);

int addition2 = 0;
int multi = functionRef(x, y, addition2);
Run Code Online (Sandbox Code Playgroud)