回 帖 发 新 帖 刷新版面

主题:有谁会这题吗??作业要交请求,快

请设计算法求线性表中第一个值是X的前驱和后继的存储位置,要求采用顺序法和单链表两种方法表示!!1
 我想,这算法要返回一个值,但有两个(前驱和后继),而函数只能返回一个值,所以怎么做???

回复列表 (共6个回复)

沙发

利用引用变量就可以了!

板凳


我是刚学,什么叫引用变量,可不可以详细点???

3 楼

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 楼

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个地址了.

5 楼

你的函数还有问题

6 楼

要返回两个值,就用函数参数传递,C语言用指针,C++用引用:

int FunctionEpl(
/*传入参数表示例*/
int a,
int b,
/*传出参数*/
int *c,
int *d)
{
  a,b是用来计算、处理的
  处理完之后,将结构result1,result2传出:
  *c=result1;
  *d=result2;
  return 0;
}
实际当中经常这样做,而函数的返回用来返回一个出错码。

所以好的C语言习惯是,一般的指针类型全部用宏名取代,而需要传出的参数使用*标记。

我来回复

您尚未登录,请登录后再回复。点此登录或注册