我在C中创建一个程序,我试图在其他函数中使用局部变量的值。假设我有两个函数foo1
foo2
。
int foo1()
{
int a=2,b=3,c;
c=a+b;
return c;
}
int foo2(int c)
{
printf("Value of C is %d",c);
}
这个方法是否正确,如果不是在其他函数中使用局部变量值的方法还有什么呢?
答案 0 :(得分:2)
首先,这两个函数foo1()和foo2()不相关... 和局部变量只有块范围。 如果你想在其他函数中使用它们,请将它们设为全局或使用pass by value并通过引用方法传递以将变量从一个函数传递给其他函数...
答案 1 :(得分:1)
你不能,你不应该直接使用其他函数的局部变量。
但是在你的情况下你很幸运:你感兴趣的foo1()
的值会被返回给调用者。
这样你可以随意使用它:
...
int value = foo1();
foo2(value);
...
甚至更短:
...
foo2(foo1());
...
答案 2 :(得分:0)
你可以这样做 -
int foo1()
{
int a=2,b=3,c;
c=a+b;
return c;
}
// c will be passed to the function and printed
int foo2(c)
{
printf("Value of C is %d",c);
}
// get the result of foo1()
int val = foo1();
// call foo2() with the result of foo1()
foo2(val);
答案 3 :(得分:0)
一种方法是使c变量为全局,以便每个函数都可以使用它。 另一种方法是在foo2()中调用此返回函数,以便可以打印返回的值。 一种方式:
int foo1(){
int a=2,int b=3;
int c=a+b;
return c;
}
int foo2(){
printf("value of c = %d",foo1()); //returned value of function foo1() used
}
其他方式是:
int c=0; //defined global
void foo1()
{
int a=2,int b=3;
c=a+b;
}
void foo2()
{
printf("value of c = %d",c);
}