哪位仁兄是C语言猛人;我有几个小问题需要仁兄帮忙!小弟不胜感激!!

时间:2021-12-17 17:17:10
C语言两原程序如下:    
(1990年程序员考试下午试题1)
  Vr6174(num)  /* 函数*/
  int num;
  {…………………
…………}
  prase_sort(num,each)      /* 函数*/
  int num,*each;
    {…………………
…………}
  max_min(each,max,min)      /* 函数*/
  int *each,*max,*min;
    {…………………
…………}
注:这三个函数是在同一个文件里。
1、“num”和“each”是全局变量还是局部变量。
2、如果是那么两处进行了定义是否有错?应该不能进行两处定义的。

还有一道题是关于链表的
C语言两原程序如下:    
(2001年程序员考试下午试题4)
#define NULL 0
typedef student {char ch;
struct node *fpt;            /*后继指针*/
struct node *bpt;            /*前趋指针*/
} NODE;
NODE *building(char *s)        /*生成双向循环链表*/
{NODE *p=NULL,*q;
while(*s){
  q=(NODE *)malloc(sizeof (NODE));
scanf(“%c”,&q->ch);
if(p= =NULL)p=q->fpt=q->bpt=q;
else {
p->bpt->fpt=q;
q->fpt=p;
q->bpt=p->bpt
p->bpt=q;
}
}
return p;
}
问:
p->bpt->fpt=q;这儿有两个“->”表示什么意思???

13 个解决方案

#1


num和each都是局部变量,在C中它们都是函数内部变量,可以重复定义,互不影响.其中函数中对变量的定义是老版本支持的,新的C也兼容,不过不提倡用这种方法.

#2


er,2nd question:

i do not read carefully,but 

-> means ,er ,i will give an example

p->bpt  is the same as  *p.bpt

it seems that it is a multi pointer here

u just need to trace the node to see what it indicates

i will come back if i have time

#3


Vr6174(num)  /* 函数*/
  int num;
  {…………………
…………}
相当于:
Vr6174(num)  /* 函数*/
  int num;
  {
   int num;
…………………
…………}
这都忘了
“->“是指针指向的对象的成员变量的意思啊。

#4


是局部变量,采用的是老式的C函数声明方式,例如:
Vr6174(num) 
  int num;这两行放在函数体外和Vr6174(int num){.....}是等价的。

#5


up!

#6


很简单的问题,去看看c的书吧。

#7


num 和 each 当然都是局部变量,关于局部变量与全局变量的问题一般的c语言书上都有,你可以去仔细看一下.
关于->的问题,首先p是一个指向结构体的指针,p->fpt是一个指向p所指的结构体的后继的指针,而p->fpt->bpt就是一个指向p所指的结构体的后继的前驱的指针.
如果你还没搞懂,那也去看一下书,每本c的书都有讲到的.

#8


去看看《c语言入门》吧

#9


num和each都是局部变量,是各自函数的形式参数。在C中它们都是函数内部变量,可以重复定义,互不影响.其中函数中对变量的定义是老版本支持的,新的C也兼容,不过不提倡用这种方法.
->是表示结构体中的成员变量。

#10


1:以前定义变量的方法啊

#11


2:结构体指针啊

#12


这种恶心的题目还在坑害初学者

#13


1、“num”和“each”是全局变量还是局部变量。?
  都是局部变量,因为在函数体内有定义
2、如果是那么两处进行了定义是否有错?应该不能进行两处定义的。
   定义是没有什么错误,关键在你怎么用,因为它们充其量不过是一些参数,而且也没有什么全局、局部的分别,关键是你传过来的参数是全局的还是局部的。

p->bpt->fpt=q;这儿有两个“->”表示什么意思???
   结构体的成员引用用两种方式,如果是一个结构体对象,用".",如果是指向结构体指针,用“->"
  你的明白的干活????!

#1


num和each都是局部变量,在C中它们都是函数内部变量,可以重复定义,互不影响.其中函数中对变量的定义是老版本支持的,新的C也兼容,不过不提倡用这种方法.

#2


er,2nd question:

i do not read carefully,but 

-> means ,er ,i will give an example

p->bpt  is the same as  *p.bpt

it seems that it is a multi pointer here

u just need to trace the node to see what it indicates

i will come back if i have time

#3


Vr6174(num)  /* 函数*/
  int num;
  {…………………
…………}
相当于:
Vr6174(num)  /* 函数*/
  int num;
  {
   int num;
…………………
…………}
这都忘了
“->“是指针指向的对象的成员变量的意思啊。

#4


是局部变量,采用的是老式的C函数声明方式,例如:
Vr6174(num) 
  int num;这两行放在函数体外和Vr6174(int num){.....}是等价的。

#5


up!

#6


很简单的问题,去看看c的书吧。

#7


num 和 each 当然都是局部变量,关于局部变量与全局变量的问题一般的c语言书上都有,你可以去仔细看一下.
关于->的问题,首先p是一个指向结构体的指针,p->fpt是一个指向p所指的结构体的后继的指针,而p->fpt->bpt就是一个指向p所指的结构体的后继的前驱的指针.
如果你还没搞懂,那也去看一下书,每本c的书都有讲到的.

#8


去看看《c语言入门》吧

#9


num和each都是局部变量,是各自函数的形式参数。在C中它们都是函数内部变量,可以重复定义,互不影响.其中函数中对变量的定义是老版本支持的,新的C也兼容,不过不提倡用这种方法.
->是表示结构体中的成员变量。

#10


1:以前定义变量的方法啊

#11


2:结构体指针啊

#12


这种恶心的题目还在坑害初学者

#13


1、“num”和“each”是全局变量还是局部变量。?
  都是局部变量,因为在函数体内有定义
2、如果是那么两处进行了定义是否有错?应该不能进行两处定义的。
   定义是没有什么错误,关键在你怎么用,因为它们充其量不过是一些参数,而且也没有什么全局、局部的分别,关键是你传过来的参数是全局的还是局部的。

p->bpt->fpt=q;这儿有两个“->”表示什么意思???
   结构体的成员引用用两种方式,如果是一个结构体对象,用".",如果是指向结构体指针,用“->"
  你的明白的干活????!