1、C语言调用完void函数后如何将值返回主函数实现输出的呢?
答:因为 void函数没有返回值,要想把让函数的值带回主函数,还有两种办法,第一是使用指针做参数,第二是潆数组做参数。
2、用指针传递就可以了吗,那如果不用指针呢?
答:用指针当然可以啦。如果不用指针,那就选择用数组参数了。
我看到你对一条回答的追问,感觉可能get到你的点了。
#include
void increase(int *a)
{
*a = *a + 1;
}
int main(int argc, char *argv[])
{
int h = 11;
increase(&h);
printf("%d\n", h);
return 0;
}
上面这个函数最后输出的值是12.
void increase(int *a)这个函数传入的是指针,a这个参数在increase函数调用结束后确实就会被释放,但a是一个指针,释放的是这个指针!但是你仔细看increase这个函数体里,已经对a这个指针指向的内容做了更改:*a = *a + 1; 我们修改的并不是a而是a指向的内容也就是h的值,所以h的值已经被改变了!
通过全局变量实现修改
通过函数的指针参数完成返回
通过函数的引用参数完成返回
也可以把数组作为参数直接在函数中修改
因为语法就是这样啊,函数调用直接使用其函数名即可,函数是void类型只是标识该函数没有返回值而已。
可以考虑让调用者提供一个存放结果的数组起始地址,函数将结果保存在数组中