C语言void子函数,求得的值在主函数里怎么输出?

2024-11-06 21:21:05
推荐回答(2个)
回答1:

把变量定义在主函数之外,即把变量设置为全局的。
一般我们都把变量的定义放在函数中,因此变量的范围就是在本函数中。可是如果定义在所有函数的外面,这样所有的函数中,都可以使用本变量。
你可以试一下这个程序。定义一个全局变量a,在主函数中进行赋值,然后在子函数中进行输出,结果是5.

#include

int a;

void func();//函数声明

int main()
{

a=5;
func();
}

void func()
{
printf("%d\n", a);
}

+++++++++++++++++++++++++++++++++++++++++++++++++++
当然,除了定义全局变量这个方法,还有其他的方法,那就是指针。在子函数的参数中传递变量的地址,依然可以使用该变量,依然能够改变该变量的值。因为主函数和子函数的变量共用的是同一个地址的变量,因此,不管在哪个函数中对变量进行操作,都会影响变量。

比如下面这个程序,在主函数中a的值为5,将变量a的地址传递过去,子函数将该地址中的变量的值设置为3,然后主函数输出,结果却是3.

#include

void func(int *b);//函数声明

int main()
{

int a=5;
func(&a);//把变量a的地址传递过去
printf("%d\n", a);
}

void func(int *b)
{
*b=3; //将地址b中变量的值设置为3
}

回答2:

最简单的方法,将n1,n2,n3定义为全局变量,放在#include 的下面
#include
int n1, n2, n3;

在main函数和find函数中将n1,n2,n3的定义都去掉,这样就可以了