主题:有谁会这题吗??作业要交请求,快
cicima1234
[专家分:0] 发布于 2006-04-23 11:28:00
请设计算法求线性表中第一个值是X的前驱和后继的存储位置,要求采用顺序法和单链表两种方法表示!!1
我想,这算法要返回一个值,但有两个(前驱和后继),而函数只能返回一个值,所以怎么做???
回复列表 (共6个回复)
沙发
flysun0311 [专家分:2040] 发布于 2006-04-23 13:46:00
利用引用变量就可以了!
板凳
cicima1234 [专家分:0] 发布于 2006-04-23 15:20:00
我是刚学,什么叫引用变量,可不可以详细点???
3 楼
eagleking0000 [专家分:3330] 发布于 2006-04-23 16:06:00
typedef struct
{int i;
int j;
} exa;
exa top,top2;
top.i=1;
top.j=2;
exa fun1(exa top1)
{
return top1;
}
top2=fun1(top);
这样看得懂吗?
4 楼
eagleking0000 [专家分:3330] 发布于 2006-04-23 16:24:00
typedef struct
{int *i;
int *j;
} exa;
exa top,top2;
top.i=(x的前驱地址);
top.j=(x的后继地址);
exa fun1(exa top1)
{
return top1;
}
top2=fun1(top);
top2中就存有2个地址了.
6 楼
rickone [专家分:15390] 发布于 2006-04-23 22:02:00
要返回两个值,就用函数参数传递,C语言用指针,C++用引用:
int FunctionEpl(
/*传入参数表示例*/
int a,
int b,
/*传出参数*/
int *c,
int *d)
{
a,b是用来计算、处理的
处理完之后,将结构result1,result2传出:
*c=result1;
*d=result2;
return 0;
}
实际当中经常这样做,而函数的返回用来返回一个出错码。
所以好的C语言习惯是,一般的指针类型全部用宏名取代,而需要传出的参数使用*标记。
我来回复