将两个指针的值相加并将相加保存到另一个指针中

Posted

技术标签:

【中文标题】将两个指针的值相加并将相加保存到另一个指针中【英文标题】:Adding the values of two pointers and saving the addition into another pointer 【发布时间】:2021-03-26 18:48:03 【问题描述】:

我是一个初学者,但我想做的是获取两个指针的值并保存它们相加的“动作”。我认为指向函数的指针会起作用,但找不到如何用它的参数初始化指向函数的指针。像这样。

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.

我试图这样想是为了避免不得不更改相互依赖的值。也许有更简单的方法,但我还没有。

【问题讨论】:

【参考方案1】:

你不能让一个指针以你想要的方式依赖于 多个 其他指针的值。但是您可以编写一个通过引用捕获因变量的 lambda,并将调用返回的值返回给 foo。对指针指向的值的任何更改都将反映在 lambda 返回的内容中。您需要使用调用语法来访问该值。

auto ab = [&]  return foo(a,b); ;  // define ab

std::cout << ab() << std::endl;      // use ab

这是demo。

【讨论】:

以上是关于将两个指针的值相加并将相加保存到另一个指针中的主要内容,如果未能解决你的问题,请参考以下文章

IL指令详细

IL指令集

ILIL指令详解

IL指令详细

IL指令详细表

字符串相加