C语言调用完void函数后如何将值返回主函数实现输出的呢? void函数没有返回值。。。是数组不同

用指针传递就可以了吗,那如果不用指针呢?求解答。。... 用指针传递就可以了吗,那如果不用指针呢?
求解答。。
展开
 我来答
岔路程序缘

2018-12-26 · TA获得超过8.9万个赞
知道大有可为答主
回答量:9918
采纳率:93%
帮助的人:3342万
展开全部
1、C语言调用完void函数后如何将值返回主函数实现输出的呢?
答:因为 void函数没有返回值,要想把让函数的值带回主函数,还有两种办法,第一是使用指针做参数,第二是潆数组做参数。
2、用指针传递就可以了吗,那如果不用指针呢?
答:用指针当然可以啦。如果不用指针,那就选择用数组参数了。
刀劈华山
2018-12-25 · TA获得超过2272个赞
知道小有建树答主
回答量:1338
采纳率:72%
帮助的人:374万
展开全部

我看到你对一条回答的追问,感觉可能get到你的点了。

#include <stdio.h>

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的值已经被改变了!

更多追问追答
追问
嗯!这个我似乎有点明白了,但如果形参不定义指针,就是普通变量呢?像数组之类的又是这样吗
因为今天我刚好看到一道题就是利用选择法在被调用函数中排序,然后再返回数组给主函数
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zcy990718
2018-12-26 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1.2万
采纳率:66%
帮助的人:1629万
展开全部
  1. 通过全局变量实现修改

  2. 通过函数的指针参数完成返回

  3. 通过函数的引用参数完成返回

  4. 也可以把数组作为参数直接在函数中修改

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
温厚还明澈丶赤子A
2018-12-25 · TA获得超过3173个赞
知道大有可为答主
回答量:4615
采纳率:6%
帮助的人:332万
展开全部
因为语法就是这样啊,函数调用直接使用其函数名即可,函数是void类型只是标识该函数没有返回值而已。
追问
可是不是说形参被调用完之后,就是被调用函数结束后,其中的值马上就会被释放掉吗,那它是如何实现值传递给主函数的呢?
而且值传递是单向的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cdyzxy
2018-12-25 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:84%
帮助的人:3545万
展开全部
可以考虑让调用者提供一个存放结果的数组起始地址,函数将结果保存在数组中
追问
什么意思?。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式