gpt4 book ai didi

c++ - 添加可变函数的错误结果

转载 作者:太空宇宙 更新时间:2023-11-04 12:32:09 25 4
gpt4 key购买 nike

我编写了以下可变参数添加函数:

#include <iostream>
#include <stdarg.h>

int Add(int arg_a, ...)
{
va_list va;
va_start(va, arg_a);

int itSum = 0;
for (int i = 0; i < arg_a; i++)
{
itSum += va_arg(va, int);
}
va_end(va);

return itSum;
}

int main(int argc, const char* argv[])
{

int Sum = Add(2, 3, 4, 6, 7, 8, 8);
std::cout << "Final: " << Sum << "\n";

return 0;
}

但是当我运行上面的程序时,它显示了错误的结果 7。这段代码有什么问题吗?

结果:

Final: 7

最佳答案

第一个参数是代码中参数的数量。

如果我没记错的话,你想把你传递的所有数字相加。它们总共是 7。所以你应该传递 7 作为你的第一个参数。

制作它:

int Sum = Add(7, 2, 3, 4, 6, 7, 8, 8);

它会正常工作。

您得到结果的原因是您将 2 作为您的第一个 arg 传递,并且您的函数在 arg_a 中接收它并运行循环多次。

所以您只能得到 2 之后的前两个数字的总和,即 3+4

关于c++ - 添加可变函数的错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58257036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com