C++ 添加两个指针的值并将添加内容保存到另一个指针中
我是一个初学者,但我想做的是得到两个指针的值,并保存它们相加的“动作”。我以为指向函数的指针可以工作,但找不到如何使用函数的参数初始化指向函数的指针。像这样的C++ 添加两个指针的值并将添加内容保存到另一个指针中,c++,function,pointers,C++,Function,Pointers,我是一个初学者,但我想做的是得到两个指针的值,并保存它们相加的“动作”。我以为指向函数的指针可以工作,但找不到如何使用函数的参数初始化指向函数的指针。像这样的 int foo(int *a, int *b){return *a + *b;} //main int *a = new int, *b = new int; *a = 10; *b = 20; int (*ab)(int *a, int *b) = foo(a, b); // here I try to save it like it
int foo(int *a, int *b){return *a + *b;}
//main
int *a = new int, *b = new int;
*a = 10;
*b = 20;
int (*ab)(int *a, int *b) = foo(a, b); // here I try to save it like it is but I can't.
// otherwise It would be like calling a function to get the result,
// my idea was to save it to a variable.
std::cout << ab << std::endl;
*a = 2000;
std::cout << ab << std::endl; // so the 'value' of ab would change here.
intfoo(int*a,int*b){return*a+*b;}
//主要
int*a=新int,*b=新int;
*a=10;
*b=20;
int(*ab)(int*a,int*b)=foo(a,b);//在这里,我试图保存它,就像它是,但我不能。
//否则就像调用一个函数来得到结果,
//我的想法是把它保存到一个变量中。
std::cout您不能让一个指针以您想要的方式依赖于多个其他指针的值。但是您可以编写一个lambda,通过引用捕获因变量,并返回调用foo
返回的值。指针指向的值的任何更改都将反映在lambda返回的内容中。您需要使用调用语法来访问该值
auto ab = [&] { return foo(a,b); }; // define ab
std::cout << ab() << std::endl; // use ab
autoab=[&]{返回foo(a,b);};//定义ab
标准::cout