| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4590 人关注过本帖
标题:为何 typedef 能把结构体重命名为指针
只看楼主 加入收藏
oszc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:111
专家分:154
注 册:2011-4-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
为何 typedef 能把结构体重命名为指针
程序代码:
struct listNode{
char dada ;
struct listNode *nextPtr
};
typedef struct listNode ListNode // 这句好理解 
typedef ListNode * ListNodePtr //typedef不能创建新结构体,为何可以把结构体重命名为指针

//在main 中使用...
int main(void)
{
    .......
    ListNodePtr newPtr //是不是不用加*就直接是指针了?我想应该ListNodePtr *newPtr
    ......
}
搜索更多相关主题的帖子: color 结构体 
2011-06-09 18:42
liangjinchao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:376
专家分:697
注 册:2010-11-8
收藏
得分:10 
程序代码:
#include"stdio.h"
typedef int inter;
typedef inter* interptr;
int main()
{
    inter a=5;
    interptr b=&a;
    printf("%d",*b);
    return 0;
}


同样道理!

程序代码:
struct listNode{
char dada ;
struct listNode *nextPtr
};
typedef struct listNode ListNode // 这句好理解 
typedef ListNode * ListNodePtr //typedef不能创建新结构体,为何可以把结构体重命名为指针//只是为了表达方便和清晰,你完全可以不用typedef定义!
//在main 中使用...
int main(void)
{
    .......
    ListNodePtr newPtr //是不是不用加*就直接是指针了?我想应该ListNodePtr *newPtr//这句也好理解,ListNodePtr代替ListNode *,所以ListNodeptr a等价于ListNode *a
    ......
}


[ 本帖最后由 liangjinchao 于 2011-6-9 19:00 编辑 ]

因为有了因为,所以有了所以,既然已成既然,何必再说何必
2011-06-09 18:53
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:10 
程序代码:
typedef ListNode * ListNodePtr;    // 这个不叫把 ListNode 重命名,而是定义了一个新的类型 ListNodePtr。
                                   // ListNodePtr 与 ListNode * 相同。
// 使用 ListNodePtr 定义变量时直接像下面这样写:
ListNodePtr p;                     // 这样定义的变量的类型是 ListNodePtr, 也就是 ListNode *;



[ 本帖最后由 voidx 于 2011-6-9 19:13 编辑 ]
2011-06-09 19:01
oszc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:111
专家分:154
注 册:2011-4-15
收藏
得分:0 
感谢解释
2011-06-09 19:12
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
收藏
得分:0 
以下是引用voidx在2011-6-9 19:01:30的发言:

 
typedef ListNode * ListNodePtr;    // 这个不叫把 ListNode 重命名,而是定义了一个新的类型 ListNodePtr。
                                   // ListNodePtr 与 ListNode * 相同。
// 使用 ListNodePtr 定义变量时直接像下面这样写:
ListNodePtr p;                     // 这样定义的变量的类型是 ListNodePtr, 也就是 ListNode *;
 

注意 typedef 并不创建新的类型。它仅仅为现有类型添加一个同义字
ListNodePtr并不是新的类型,只是ListNode结构体的一个同义字。

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2011-06-10 01:38
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
其实就是对类型起了个别名 typedef int height

height h等价于  int h

                                         
===========深入<----------------->浅出============
2011-06-10 08:54
快速回复:为何 typedef 能把结构体重命名为指针
数据加载中...
 
   



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

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