我正在尝试通过在线课程按照自己的节奏学习C++。有一个函数声明,之后还有一个整数声明,即 q。
我不明白"q"在代码中有什么用途。
我试图打印出每个步骤,但没有意义。我真的看不出在foo函数中使用"q"的意义或它的作用。
#include<stdio.h>
int foo (int q) {
int x = 1;
return (q + x);
}
int main (){
int x = 0;
while (x < 3) {
printf ("%in", x);
x = x + foo(x);
}
}
这段代码给了我 0 1 似乎"q"正在递增 x,但我看不出原因,因为我们没有将其分配给任何东西,而只是说 (int q(
在您发布的代码中,q
是函数foo
的参数,foo
将返回其参数的值 (q
( +1。
这是一个通过值函数调用的调用,其中 foo(( 通过将值传递给 q 变量来获取调用。 如果你没有在函数中声明任何参数,它将给出一个错误,因为它是 int q 只是为了从 main 函数中获取值。 所以在这里,当第一次 foo 接到调用时 - 它是返回 1,之后它是返回 2 . 所以第二次 x=1+2=3 3>3 条件为假。 它只打印0,1。
q
是一个参数。也就是说,它是函数中接受来自调用方的值的东西。正如w3schools所说:
信息可以作为参数传递给函数。参数充当函数内的变量。
参数在函数名称之后的括号内指定。您可以根据需要添加任意数量的参数,只需用逗号分隔即可:
我自己可能再解释不过了。
这段代码给了我 0 1 似乎"q"正在递增 x,但我看不出原因,因为我们没有将其分配给任何东西,而只是说 (int q(
啊,所以,我们确实把它分配给了一些东西。它可能只是不明显。当我们打电话给foo
时,我们做到了:
x = x + foo(x);
在这里,通过将x
放在括号之间,我们将q
设置为x
的值(在本例中似乎是0
(。这意味着,q
在函数调用中将具有x
(0
(的值。
我们也可以将其设置为其他内容,例如3
:
x = x + foo(3);
在这里,q
设置为3
,因为3
在括号内。
int foo (int q)
声明一个采用输入参数Q的函数。在 foo 中,q取的值取决于传递给它的值。在这种情况下,当您调用它时:
foo(x)
你声明:在foo中运行代码,但在输入函数时将 main(( 中的x值提供给q。当你开始编程时,起初,这是误导性的,因为q和x似乎是不同的变量。你会习惯的。
你还必须意识到,foo中的x与main中的x无关。这些是不同的变量。
感谢您的所有回答和评论。
似乎 q 是传入的参数,而 x 只是用来表示整数(冗余(。
如果代码只使用整数 1 作为,那就更好了:
int foo (int q) {
return (q + 1);