int function1()
{
int f;
printf("enter any value");
scanf("%d", &f);
printf("Value is %d", f);
return f; // <-- return the value in local variable f
}
void function2(int f) // <-- pass f as argument to function
{
printf("Value is %d", f); // <-- use f inside function2
}
int main(int argc, char* argv[])
{
int f = function1(); // <-- store value returned by function1 in f
...
function2(f); // <-- call function2 by passing f as argument
...
function2(function1()); // <-- passing f directly from function1 to function2
return 0;
}
6条答案
按热度按时间8dtrkrch1#
其实你已经做了。
将
F
的引用传递给scanf
是如何使用它的。编写自己的函数时,只需确定是传递引用还是值。如果传递值这就叫做
如果传递引用
这就叫做
nfzehxib2#
函数局部变量的生存期对于该函数是局部的。如果必须将一个函数内部的局部变量保存的值用于另一个函数,可以
return
返回function1()
中的值。1.在调用函数中收集返回值。
1.将存储值作为参数传递给
function2()
。注意:上述答案假设
function1()
和function2()
都是从父函数调用的,可能是func()
。编辑:
如果您需要在其他函数中使用局部变量的多个值(不使用全局变量),最常见的做法是
1.将指向结构的指针作为
function1()
的参数传递1.从局部变量中填充
function1()
内的成员元素值。1.再次将结构(或者,需要结构的地址)作为参数传递给
function2()
。km0tfn4u3#
定义另一个接受输入并将其传递给function2函数,如下所示:
或者,如果可以从function1调用function2,则可以执行以下操作:
7vhp5slm4#
当然,您不能显式地这样做,因为局部变量的作用域和生存期仅限于该函数。
但是如果你想让F的变量也在外面,最简单的解决方案就是把它变成全局变量.
其次,您也可以将F作为参数传递给另一个函数。
c7rzv4ha5#
function2不可能使用function1中的局部变量,因为当function1返回时,局部变量已被销毁。解决方法是返回值f作为function1的结果。
agxfikkp6#
可以创建新的
function2()
,并通过值--〉function2(F)
进行传递