Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 添加两个指针的值并将添加内容保存到另一个指针中_C++_Function_Pointers - Fatal编程技术网

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