关于函数返回值的菜鸟问题

fqye 2003-07-10 04:48:52
如果想利用函数的参数带回返回值,应该怎么写呢?
比如:
void test(int a,int b,int c)
{
……
}
不用return指令。
在调用这个函数的时候想只输入a的值,b和c是输出。
...全文
30 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
fqye 2003-07-10
  • 打赏
  • 举报
回复
WYC2300(无一从) :全局变量和局部变量怎么处理?
gunsrose 2003-07-10
  • 打赏
  • 举报
回复
void test(int *a,int *b,int *c)
{
……
}


void test(int &a,int &b,int &c)
{
……
}

这样 a,b,c 三个值都返回了1!!!!!!
WYC2300 2003-07-10
  • 打赏
  • 举报
回复
#include <stdio.h>

void test(int a,int * b ,int * c)
{
*b=a+1;
*c=a+2;
}

int main(int argc, char* argv[])
{
int a=1;
int b,c; /*notice*/
test(a,&b,&c); /*将变量b,c的地址传进去*/
printf("a=%d b=%d c=%d",a,b,c);
getc(stdin);
return 0;
}
除了以上的方法外还可以通过局部变量和全局变量来控制~~
zteliubin 2003-07-10
  • 打赏
  • 举报
回复
我不是说了怎么调用了吗,呵呵
fqye 2003-07-10
  • 打赏
  • 举报
回复
哦,好像这样指向了空指针,是吗?
fqye 2003-07-10
  • 打赏
  • 举报
回复
不懂了
int *b,*c;
test(a,b,c);

int b,c;
test(a,&b,&c);
传进去的不都是地址吗?为什么不一样呢?
bigtea 2003-07-10
  • 打赏
  • 举报
回复
应该这样调用
#include <stdio.h>

void test(int a,int * b ,int * c)
{
*b=a+1;
*c=a+2;
}

int main(int argc, char* argv[])
{
int a=1;
int b,c; /*notice*/
test(a,&b,&c); /*将变量b,c的地址传进去*/
printf("a=%d b=%d c=%d",a,b,c);
getc(stdin);
return 0;
}
fqye 2003-07-10
  • 打赏
  • 举报
回复
不懂了
int *b,*c;
test(a,b,c);

int b,c;
test(a,&b,&c);
传进去的不都是地址吗?为什么不一样呢?
fqye 2003-07-10
  • 打赏
  • 举报
回复
改成这样OK了
void test(int a,int * b ,int * c)
{
*b=a+1;
*c=a+2;
}

int main(int argc, char* argv[])
{
int a=1;
int b,c;
test(a,&b,&c);
printf("a=%d b=%d c=%d",a,b,c);
getc(stdin);
return 0;
}
fierygnu 2003-07-10
  • 打赏
  • 举报
回复
int b, c;
不是
int *b, *c;
fqye 2003-07-10
  • 打赏
  • 举报
回复
这样行不行?

void test(int a,int * b ,int * c)
{
*b=a+1;
*c=a+2;
}

int main(int argc, char* argv[])
{
int a=1;
int *b,*c;
test(a,b,c);
printf("a=%d b=%d c=%d",a,*b,*c);
getc(stdin);
return 0;
}
fqye 2003-07-10
  • 打赏
  • 举报
回复
stukov2002(卡拉是头猪) :这样写运行出错,异常。
zteliubin 2003-07-10
  • 打赏
  • 举报
回复
对头,tnnd,又搞错了。

*b=...;
*c=...;
xueqt 2003-07-10
  • 打赏
  • 举报
回复
呵呵,楼上几威都很热心
idontlikenickname 2003-07-10
  • 打赏
  • 举报
回复


老兄别慌啊~ :D
c:
void test(int a,int* b,int *c)
{
*b=...; // 应该如此
*c=...; // 应该如此
}

nirvana_li 2003-07-10
  • 打赏
  • 举报
回复
同意楼上的!!
c++中可以使用reference:
void test(int a,int &b,int &c)



zteliubin 2003-07-10
  • 打赏
  • 举报
回复
tmd,提交失败!
c:
void test(int a,int* b,int *c)
{
b=...;
c=...;
}

调用:test(a,&b,&c);
c++:
void test(int a,int &b,int &c)
{
b=...;
c=...;
}
调用:test(a,b,c);

够全吧,给分!
fqye 2003-07-10
  • 打赏
  • 举报
回复
就是说函数返回值必须用指针才能带出来?
zteliubin 2003-07-10
  • 打赏
  • 举报
回复
c:
void test(int a,int* b,int *c)
{
b=...;
c=...;
}

调用:test(a,&b,&c);
c++:
void test(int a,int &b,int &c)
{
b=...;
c=...;
}
调用:test(a,b,c);

够全吧,给分!
fierygnu 2003-07-10
  • 打赏
  • 举报
回复
倒!
C/C++是值传递,必须使用指针或引用才行。
void test(int a, int *pb, int &c)
{
*pb = 1;
c = 2;
...
}
加载更多回复(3)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧