C语言结构体别名定义问题
typedefstructSTU{intage;structSTU*next;}*linklist;linklisthead;中为什么可以将结构体别名定义为带指针的*in...
typedef struct STU
{
int age;
struct STU *next;
}*linklist;
linklist head;
中为什么可以将结构体别名定义为带指针的*inklist?而后面定义的head又是什么类型?
哪位C大神帮我解析下 展开
{
int age;
struct STU *next;
}*linklist;
linklist head;
中为什么可以将结构体别名定义为带指针的*inklist?而后面定义的head又是什么类型?
哪位C大神帮我解析下 展开
5个回答
展开全部
C语言给结构体定义别名用typedef关键字操作,就两种情况:
给结构体起一个别名,如:
typedef struct ABC{
...}S;——这就为结构体ABC定义了一个别名S。以后写S x;就等价于写struct ABC x;了。
给结构体指针起一个别名,如:
typedef struct ABC{
...
}*PS;——这就为结构体指针ABC *定义了一个别名PS。以后写PS pt;就等价于写struct ABC *pt;了。注意这里是用typedef给struct ABC{...} *起一个别名PS,而不是给struct ABC{...}起一个别名*PS——后者是说不通的,起码的错误是标识符不可能以*开头!
展开全部
定义一个结构体,比如说就你这个
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就是结构体指针类型了;
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就是结构体指针类型了;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
typedef struct STU
{
int age;
struct STU *next;
}*linklist;
此处第一了一个型的类型,即struct STU *,即指向结构体STU的指针
所以head的类型也就是struct STU *
{
int age;
struct STU *next;
}*linklist;
此处第一了一个型的类型,即struct STU *,即指向结构体STU的指针
所以head的类型也就是struct STU *
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
head为一个指向STU结构体类型的指针。但是并没有未其分配具体的空间。可以将一个已定义为STU结构体的指针赋给它。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这表示 linklist 是 struct STU 的指针类型,
后面定义的 head 是 linklist 类型的,也就是指向 struct STU 的指针。
后面定义的 head 是 linklist 类型的,也就是指向 struct STU 的指针。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询