我试图编写一个程序,要求用户输入"他们想要添加多少个数字",然后在函数中添加所有数字。我想用动态分配的参数数量创建添加函数,这样就有X" int num {someNumber},"其中X是用户想要添加的数字的数量。我目前的代码(非常粗糙)是:
int var = 0;
string multiply(int num);
void testing(int num, multiply(var));
int main(){}
void testing(int num, multiply(var)) {
}//end testing
//Function to append int num{num} to string
string multiply(int num) {
string declaration = "null";
for (int num = 0; num <= var; num++) {
declaration.append("int num" + num);
}//end for
return declaration;
}//end multiply
我意识到仍有工作要做,例如删除最后一个逗号,但是是否可以在函数定义中使用字符串来声明X int num参数?
答案 0 :(得分:0)
另一个类似的问题已经存在,请查看答案:Variable number of arguments in C++?
虽然绝对可以使用可变数量的参数定义函数,但您可能还需要考虑迭代或递归地定义程序。
具有可变数量参数的函数有时可能非常有用,但也可能导致奇怪的边缘情况,如scanf("%d")
,它想要扫描一个整数,但没有给出一个地址来放置它。允许函数调用,扫描的整数将覆盖内存中的(可能很重要的)位置。