谁能像我一样解释我';m 5变量如何作用于函数? 在过去的4个月里,我一直在学习C++,我取得了很大的进步,实际上很快就接近了学习图表。 只有一件事我仍然有问题,我不明白,那就是函数上的变量 int calculateSum(int a, int b){ int sum; }

谁能像我一样解释我';m 5变量如何作用于函数? 在过去的4个月里,我一直在学习C++,我取得了很大的进步,实际上很快就接近了学习图表。 只有一件事我仍然有问题,我不明白,那就是函数上的变量 int calculateSum(int a, int b){ int sum; },c++,function,int,parentheses,C++,Function,Int,Parentheses,基本上,我不知道一开始在函数的()中放入什么类型的变量,以及之后需要放入什么变量 我知道这取决于练习,所以我试着举个例子 所以我想计算函数中a和b的和 int calculateSum(int a, int b){ int sum; } 那么为什么我要把它放在函数下面而不是放在括号里呢? 为什么不能像这样: int calculateSum(int a, int b, int sum){ //code } ()中的变量是函数的参数。也就是说,当从其他代码调用它时,它所期望的输

基本上,我不知道一开始在函数的()中放入什么类型的变量,以及之后需要放入什么变量

我知道这取决于练习,所以我试着举个例子

所以我想计算函数中a和b的和

int calculateSum(int a, int b){
    int sum;
}
那么为什么我要把它放在函数下面而不是放在括号里呢? 为什么不能像这样:

int calculateSum(int a, int b, int sum){
    //code
}

()
中的变量是函数的参数。也就是说,当从其他代码调用它时,它所期望的输入。
{}
中的变量专门用于函数内部

int calculateSum(int a, int b){
    int sum;
}
您的第一个示例很有意义-您可以这样使用它:

int answer = calculateSum(1, 2);
int CalculateSum (int a, int b, int sum) {
sum = a + b;
return sum;
}

在第二个示例中,您将传递什么作为
sum
参数的参数?这是一种毫无意义的请求——函数的调用方希望从例程中获取求和值。

实际上,一切都取决于函数的定义。例如,我们可以如下定义一个函数。 int CalculateSum(int a,int b,int sum)

此函数必须接收三个整数a、b和sum。 可以定义函数的主体 例如:

int answer = calculateSum(1, 2);
int CalculateSum (int a, int b, int sum) {
sum = a + b;
return sum;
}
我们还可以定义函数

int CalculateSum(int a,int b); 此函数接收两个整数a和b

函数的主体可以是

int CalculateSum (int a, int b) {
int sum;
sum = a + b;
return sum;
}

如果你是函数的创建者,你可以随心所欲地去做,但是如果函数已经定义,你就必须在定义开始时使用它。

当你编写函数时,你需要将你的思想分成两个不同的角色。有编写函数的开发人员,我们称之为FuncDev,有调用该函数的开发人员,我们称之为CallDev

当FuncDev编写函数时,他们需要考虑CallDev需要函数做什么以及在什么情况下调用它。CallDev在调用函数时有哪些信息?他们希望函数实际做什么或返回什么

calculateSum
的情况下,CallDev将有两个数字,它们需要求和。而FuncDev只需要两个数字就可以正确计算出一个和。所以大家都同意:要调用
calculateSum
,您应该提供两个数字并返回一个数字(这是这两个数字的总和)

所有这些信息都可以在函数标题中找到:

//- This function will return (or give back) an integer
//|                   - This function requires two integers to do its job
//v                   v
int calculateSum(int a, int b) {
您不需要同时包含
int sum
参数,因为A。调用函数时,CallDev不会包含该参数。他们打电话的目的就是要先拿到一笔钱!B.这不是FuncDev计算总和所需要的。因此,您将对调用函数的任何人施加额外的条件,而不会在函数实现中获得任何结果

此外,在函数逻辑本身的花括号内发生的一切,CallDev都不需要知道。FuncDev是否决定在返回求和之前生成一个
int sum
变量来保存求和,等等。。。不要紧

通常,在开发时,我会在编写函数之前进行函数调用。在你的例子中,我可能会想“嗯,我真的需要两个数字的和。我手头有两个数字,如果我能调用
calculateSum(num1,num2)
并得到我需要的值,那就太好了。”所以我实际上只需要编写对函数的调用并继续1



一,。实际上,这看起来像是在适用于函数时编写测试,然后编写它。但前提是一样的。在我编写函数之前,我正在定义函数的行为、输入和输出。

为什么不尝试以两种方式实现它,并告诉我们它是如何实现的呢。。这只是一个例子,也许在这里它会起作用,但在其他人身上它不会……这并不能真正回答我的问题,或者我只是哑巴第二种方法在这个特定的例子中不起作用:)好吧,但为什么???不要在你的游行上下雨,但在这里提问之前最好先看一本教科书。哦,好吧,我在读了你说的5遍之后,才开始明白了。因此,基本上你的意思是,在括号中,我只使用不必进入int main()的“无用”变量,除此之外,我使用我实际想要对该函数执行的操作?@jaketherazvy在你回答的内容中没有“无用变量”。还有为什么
main
相关?您可以从任何地方调用该函数。我觉得你根本不懂这个,好吧,很有意思。我不知道我可以将一个函数调用为另一个函数。。所以很高兴知道。我只学了4个月,每节课都学到了基础知识,这些知识足以让我解决练习题。我并没有对每件事都进行深入研究。我还称它们为“无用变量”,因为我没有更好的同义词来表达我的意思。