| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 636 人关注过本帖
标题:求助:关于结构体指针的问题
只看楼主 加入收藏
jbddd
Rank: 2
等 级:论坛游民
帖 子:45
专家分:24
注 册:2009-7-26
结帖率:87.5%
收藏
已结贴  问题点数:20 回复次数:8 
求助:关于结构体指针的问题
实现了一个结构体:
typedef struct Slist{
    struct Slist *prior;
    struct Slist *next;
    int    data;
}Slist,*SqList;
然后再main函数中又定义了一个
Slist *p;
请问这个p和SqList都是指针,有什么区别吗?
另外typedef在结构体的定义中,有什么用法,
比如说 将上面的结构体换成定义:
typedef struct {
    struct Slist *prior;
    struct Slist *next;
    int    data;
}Slist,*SqList;
可以吗?
感觉还是不太懂,谢谢各位了
搜索更多相关主题的帖子: 结构体 指针 
2010-05-19 13:32
NoSoul
Rank: 9Rank: 9Rank: 9
来 自:沈阳化工大学
等 级:蜘蛛侠
帖 子:283
专家分:1010
注 册:2009-6-6
收藏
得分:5 
SqList算一个类型 类似于Slist  比如你可以定义SqList p;  最标准的就是下面的定义

我想伸手拉近點,竟觸不到那邊,就欠一點點,但這一點點...卻好遠
2010-05-19 13:35
jbddd
Rank: 2
等 级:论坛游民
帖 子:45
专家分:24
注 册:2009-7-26
收藏
得分:0 
回复 2楼 NoSoul
我的理解是 上面的最标准 因为这时候编译器还不知道Slist 是什么
2010-05-19 13:41
NoSoul
Rank: 9Rank: 9Rank: 9
来 自:沈阳化工大学
等 级:蜘蛛侠
帖 子:283
专家分:1010
注 册:2009-6-6
收藏
得分:0 
爱用什么就用什么

我想伸手拉近點,竟觸不到那邊,就欠一點點,但這一點點...卻好遠
2010-05-19 13:47
jbddd
Rank: 2
等 级:论坛游民
帖 子:45
专家分:24
注 册:2009-7-26
收藏
得分:0 
厄。。。 不懂。。
2010-05-19 21:22
liangxiao
Rank: 2
等 级:论坛游民
帖 子:7
专家分:11
注 册:2010-4-2
收藏
得分:5 
typedef 是用来声明类型的
typedef struct Slist{  //Slist可以省略,如果不用3)定义的话
    struct Slist *prior;
    struct Slist *next;
    int    data;
}Slist,*SqList;
1)Slist *p;
2)SqList p;
3)struct Slist *p;//如果没有typedef,就得这么定义,写struct
都是等价的
收到的鲜花
  • jbddd2010-05-21 23:05 送鲜花  3朵  
2010-05-20 12:00
ww稻草人
Rank: 5Rank: 5
来 自:陕西西安
等 级:职业侠客
帖 子:57
专家分:309
注 册:2010-5-11
收藏
得分:5 
这两个是等价的   Slist* = SqList  ,你定义一个Slist  *p就和定义   sqList p这时的p的类型一样

我的博客  http://blog..cn/daocaoren020
2010-05-20 12:11
itma
Rank: 4
等 级:业余侠客
帖 子:105
专家分:266
注 册:2010-2-8
收藏
得分:5 
以下是引用liangxiao在2010-5-20 12:00:47的发言:

typedef 是用来声明类型的
typedef struct Slist{  //Slist可以省略,如果不用3)定义的话
    struct Slist *prior;
    struct Slist *next;
    int    data;
}Slist,*SqList;
1)Slist *p;
2)SqList p;
3)struct Slist *p;//如果没有typedef,就得这么定义,写struct
都是等价的
Ding .
2010-05-20 12:39
jbddd
Rank: 2
等 级:论坛游民
帖 子:45
专家分:24
注 册:2009-7-26
收藏
得分:0 
回复 6楼 liangxiao
typedef 是用来声明类型的
typedef struct Slist{  //可以省略,如果不用3)定义的话
    struct Slist *prior;
    struct Slist *next;
    int    data;
}Slist,*SqList;
1)Slist *p;
2)SqList p;
3)struct Slist *p;//如果没有typedef,就得这么定义,写struct
都是等价的

我的理解是Slist没有给出的时候,结构体内部(1),(2)的定义也成立对吗?
为什么使用(3)定义的时候Slist一定要?
typedef struct Slist{  //可以省略,如果不用3)定义的话
    struct Slist *prior;
    struct Slist *next;
    int    data;
}*SqList; 这样可以吗??? 谢谢了


[ 本帖最后由 jbddd 于 2010-5-21 23:06 编辑 ]
2010-05-21 23:05
快速回复:求助:关于结构体指针的问题
数据加载中...
 
   



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

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