C语言中定义结构体及其变量

struct {int x;int y;int z;} a; 这种形式定义结构体对吗?我觉得struct后面少了 应该定义为e.g.struct Node{。。}这样吧 谢谢指正错误

1.结构体类型数据的定义方法和引用方法
定义结构体:struct 结构体名
{
成员列表
};
定义结构体类型的变量:有三种形式
① 定义类型时定义变量:struct 结构体类型名
{
成员列表
}变量名列表;
② 直接定义结构类型变量:struct
{
成员列表
}变量名列表;
③ 由已定义的结构体类型来定义变量:struct 结构体类型名变量名列表;
引用结构体类型变量:在定义了结构体类型变量后,采用下列方法引用结构体类型的
变量:
结构体变量名.成员名
这里"."是成员(分量)运算符,它在所有的运算符中优先级最高。
使用结构体时注意:
(1)结构体类型和结构体类型变量是不同的概念,定义结构体类型变量时应先定义
结构体类型,然后再定义变量属于该类型。
(2)定义了—个结构体类型后,系统并没有为所定义的各成员项分配相应的存储空
间。只有定义了一个结构体类型变量,系统才为所定义的变量分配相应的存储空间。结构
体类型变量占用内存的字节数是所有成员占用内存长度之和。
(3)结构体成员的引用。如果一个结构体中又嵌套一个结构体,则要访问一个成员
时,应采取外层向内层逐级访问的方法。
求采纳为满意回答。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-09-11
前面一个貌似少了一个 typedef,这样a直接就是结构体变量 ;后面一种是正确的,定义变量的时候需另外定义,struct Node a;
第2个回答  2014-09-11
a 是该结构体类型的变量,不是结构体名
相似回答