解释有点乏味,但我会尝试。我有一个函数,它将地址作为输入。然后不是先保存变量,所以我可以将地址传递给该变量到函数,我想直接输入函数作为参数。有没有办法做到这一点?
这样的事情:
#include <iostream>
#include "main.h"
using namespace std;
int main()
{
printFunction(returnOne());
return 0;
}
void printFunction(int *a) {
cout << a << endl;
}
int returnOne() {
return 1;
}
答案 0 :(得分:2)
嗯,显然returnOne()
与返回类型的void printFunction(int*)
不一致,应该是这样的:
int* returnOne() {
static int one = 1;
return &one;
}
或
int* returnOne() {
return new int(1);
}
另一种选择是将结果地址视为
printFunction(&returnOne());
// ^
但是对于像
这样的实现,这会产生未定义的行为int returnOne() {
return 1;
}
因为它取一个临时值的地址。