| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3034 人关注过本帖
标题:[求助]新手求助函数怎么样可以返回2个值呢?
只看楼主 加入收藏
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
[CODE]#include<stdio.h>
struct array{
int ia[2];
}i,j;
struct array rt(int a,int b)
{
i.ia[0]=a+b;
i.ia[1]=a-b;
return i;
}
main()
{
int a=5,b=3;
j=rt(a,b);
printf("%d,%d\n",j.ia[0],j.ia[1]);
}[/CODE]

想必楼上也不能把这种情况称为返回数组吧

[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-07-17 22:00
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-17 22:03
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
以下是引用穆扬在2006-7-17 22:03:22的发言:
是的
我不把那叫做返回数组

feng1256说的果然没错


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-07-17 22:04
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-17 22:04
★红狼
Rank: 2
等 级:论坛游民
帖 子:190
专家分:17
注 册:2006-7-12
收藏
得分:0 
以下是引用SunShining在2006-7-17 22:00:23的发言:
[CODE]#include<stdio.h>
struct array{
int ia[2];
}i,j;
struct array rt(int a,int b) // 函数还是返回了1个值 i。因为是结构吧。所以有2个值i.ia[0];i[1];
{
i.ia[0]=a+b;
i.ia[1]=a-b;
return i;
}
main()
{
int a=5,b=3;
j=rt(a,b);
printf("%d,%d\n",j.ia[0],j.ia[1]); //接上。这里只是引用了结构中的 j
}[/CODE]

我认为 穆扬说的。结构 也 会返回 多个值 的意思。就在这里吧。

2006-07-18 11:41
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-18 11:57
wangsong
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-7-15
收藏
得分:0 
首先C语言中没有引用的概念,其次这么做也没法返回两个值,
可以定义一个结构例如:
typedef sturct data
{
int a;
int b;
}Data;

函数首部:Data fun();
函数的返回值是个结构,间接达到了“返回两个值”的目的

2006-07-18 23:28
grub2linux
Rank: 1
等 级:新手上路
帖 子:335
专家分:0
注 册:2004-12-25
收藏
得分:0 
关于 type (*p)[n] 的编译限制 的更正

我原以为:在TC系列

不能如下:
#include <stdio.h>
main()
{
char a[2][3]={'a','s','d','f','g','h'};

char (*p)[4]=&a[0][1];
printf("%c\n",p[0][3]);
getchar();
}

****************************
只能如下:
#include <stdio.h>
main()
{
char a[2][3]={'a','s','d','f','g','h'};

char (*p)[3]=a; /* 这里的数字一定要跟上面的最后的数字一致。
printf("%c\n",p[0][3]);
getchar();
}


现在发现: 如果把后缀写成C,前者照样可以(虽然有警告),改成CPP才不行。

还有另外一种方式:
在COMPILER的C++OPTION中,选C++ ALWAYS,即使是C后缀,也不行,原则一样。

在VC中,也基本一样。

总之,前者是C规范,后者是C++规范
在C++,有一些很死的规定,C就自由多了

有缘相识!我中文系的 3月拿下C/C++/VC 5天写游戏 2月写游戏系统 有空去http://mykool.go2.
2006-08-02 15:42
1st_sWorD
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-7-22
收藏
得分:0 

要函数返回一个值以上的都需要用到指针啦~~~

2006-08-02 18:03
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-08-02 19:21
快速回复:[求助]新手求助函数怎么样可以返回2个值呢?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038998 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved