luckin 发表于 2014-6-24 14:36:31

链表的指针

typedef struct node
{
        int data;
        struct node *next;
}sqlist,*linklist;sqlist和*liklist有啥区别呢?
为什么可以这样linklist s,r;
不是应该*linklist s,r;?


分配地址时s=(linklist)malloc(sizeof(linklist));
                    s=(node *)malloc(sizeof(node));


函数传参数时(node**s)和(linklist*s)传的都是地址?

折心灬小轩 发表于 2014-6-24 14:36:32

typedef struct node
{
      int data;
      struct node *next;
}sqlist,*linklist;
这个重命名使得sqlist与struct node等同,*linklist与struct node等同,那么linklikst就与&struct node等同了,由此可知,linklist等同于struct node*。

*linklist也可以定义,不过*linklist等同于sqlist,也就是struct node,所以这就是他们的区别。

至于你的第二个问题,我感觉有些问题:malloc函数的参数是个无符号整形数值,参数的作用是说明被分配的储存单元的大小,至于malloc函数的返回值则是一个地址,这个地址可用于各种寻址,也就是这样,至于你的问题,我没有看太明白,不过你可以整理下思路继续问。

满意请采纳,不满意请追问。

oggplay 发表于 2014-6-24 15:26:53

本帖最后由 oggplay 于 2014-6-24 17:11 编辑

要想明白,先理解这个东西:
typedef int IG;
IG d;

typedef int * intptr;
intptr s;typedef int IG,* intptr;*s=d;

以下不难理解了吧:
typedef struct node {...} sqlist;

typedef struct node * linklist;
typedef struct node {...} sqlist, *linklist;sqlist d;linklist s=&d;

luckin 发表于 2014-6-24 16:04:04

oggplay 发表于 2014-6-24 15:26 static/image/common/back.gif
要想明白,先理解这个东西:
typedef int IG;
IG b;

typedef struct node * linklist

定义一个结构体指针变量用linklist表示是不是这样理解,求指教。

oggplay 发表于 2014-6-24 16:18:40

本帖最后由 oggplay 于 2014-6-24 17:18 编辑

luckin 发表于 2014-6-24 16:04 static/image/common/back.gif
typedef struct node * linklist

定义一个结构体指针变量用linklist表示是不是这样理解,求指教。

linklist d;等于struct node *d;

luckin 发表于 2014-6-24 16:23:59

oggplay 发表于 2014-6-24 16:18 static/image/common/back.gif
对的,等于

函数传参数时(node**s)和(linklist*s)传的都是地址?

oggplay 发表于 2014-6-24 16:56:39

本帖最后由 oggplay 于 2014-6-24 17:13 编辑

luckin 发表于 2014-6-24 16:23 static/image/common/back.gif
函数传参数时(node**s)和(linklist*s)传的都是地址?
虽然都是传递的地址,但是不一样,linklist *(参数s)指向结构体首地址,node **是指向结构体指针(比如指针next)的指针

luckin 发表于 2014-6-24 19:20:47

oggplay 发表于 2014-6-24 16:56 static/image/common/back.gif
虽然都是传递的地址,但是不一样,linklist *(参数s)指向结构体首地址,node **是指向结构体指针(比如指 ...

那linklists
s是什么呢 大神

luckin 发表于 2014-6-25 07:29:15

折心灬小轩 发表于 2014-6-24 23:38 static/image/common/back.gif
typedef struct node
{
      int data;


函数传参数时node(**s)
linklist( *s)
linklist   (s)
传的都什么参数?

戏++ 发表于 2014-6-25 15:19:36


typedef struct node
{
        int data;
        struct node *next;
}sqlist,*linklist;

int main()
{
        sqlist a;
        linklist p = &a;



        return 0;
}

a 定义了一个结构
p 是指针指向a这个结构

可以推断linklist就是struct node*

拈花小仙 发表于 2014-7-5 21:35:57

折心灬小轩 发表于 2014-6-24 14:36
typedef struct node
{
      int data;


小轩还交流C++ http://bbs.fishc.com/group-264-1.html

折心灬小轩 发表于 2014-7-9 21:56:42

拈花小仙 发表于 2014-7-5 21:35
小轩还交流C++ http://bbs.fishc.com/group-264-1.html

1.论坛等级不够,不能够打招呼和加好友,所以。。。
2.群组人员数量已达到上限。。。
3.企鹅779139218
页: [1]
查看完整版本: 链表的指针