C语言结构体别名定义问题

typedefstructSTU{intage;structSTU*next;}*linklist;linklisthead;中为什么可以将结构体别名定义为带指针的*in... typedef struct STU
{
int age;
struct STU *next;
}*linklist;
linklist head;
中为什么可以将结构体别名定义为带指针的*inklist?而后面定义的head又是什么类型?
哪位C大神帮我解析下
展开
 我来答
White_MouseYBZ
推荐于2017-10-11 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6629万
展开全部

C语言给结构体定义别名用typedef关键字操作,就两种情况:

  1. 给结构体起一个别名,如:

    typedef struct ABC{
    ...

    }S;——这就为结构体ABC定义了一个别名S。以后写S x;就等价于写struct ABC x;了。

  2. 给结构体指针起一个别名,如:

    typedef struct ABC{

    ...

    }*PS;——这就为结构体指针ABC *定义了一个别名PS。以后写PS pt;就等价于写struct ABC *pt;了。注意这里是用typedef给struct ABC{...} *起一个别名PS,而不是给struct ABC{...}起一个别名*PS——后者是说不通的,起码的错误是标识符不可能以*开头!

黑色亡灵终结者
2013-11-24 · TA获得超过244个赞
知道小有建树答主
回答量:142
采纳率:0%
帮助的人:108万
展开全部
定义一个结构体,比如说就你这个
struct STU
{
int age;
struct STU *next;
};
然后我想定义一个结果提类型的指针,应该是struct STU *p;或者定义一个普通的结构体变量struct STU a;
比较麻烦,用typedef后
typedef struct STU
{
int age;
struct STU *next;
}linklist;
那么现在linklist就代表这个结构体,现在定义结果提指针linklist *p;就方便了
同样,把他定义成
typedef struct STU
{
int age;
struct STU *next;
}*linklist;
那么linklist就是代表这个结构体指针类型,linklist head;head就是结构体指针类型了;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shine1991
科技发烧友

推荐于2017-09-20 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.3亿
展开全部
typedef struct STU
{
int age;
struct STU *next;
}*linklist;
此处第一了一个型的类型,即struct STU *,即指向结构体STU的指针
所以head的类型也就是struct STU *
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sayholy
2015-10-26 · TA获得超过482个赞
知道小有建树答主
回答量:80
采纳率:0%
帮助的人:55.8万
展开全部
head为一个指向STU结构体类型的指针。但是并没有未其分配具体的空间。可以将一个已定义为STU结构体的指针赋给它。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a5eb3e1
2013-11-24 · TA获得超过4448个赞
知道大有可为答主
回答量:3486
采纳率:60%
帮助的人:2653万
展开全部
这表示 linklist 是 struct STU 的指针类型,
后面定义的 head 是 linklist 类型的,也就是指向 struct STU 的指针。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式