聚合数据类型:包括数组和结构
区别:
1、访问成员方式:
结构成员的个成员长度不相同,所以的结构通过名字来访问.
数组中的数据类型都相同,可以通过下标或指针来访问.
2、左右值
结构是一个标量.和其他任何标量一样,当结构名在表达式中作为右值使用时,他表示存储在结构中的值.
当它作为左值使用时,它表示结构存储的内存位置.但是当数组名在表达式中做为右值使用时,它的值是一个
指向数组第一个元素的指针.由于它的值是一个常量指针,所以数组名不能作为左值使用.
声明格式:
struct tag{ member-list } variable-list
备注: 结构声明:声明时并未分配内存,在创建结构体变量时才分配内存.
首先,结构体是一个数据类型,所以结构体声明实际上就是:定义了一个名为 tag 的结构体数据类型类型,数据类型tag的使用和int、
char等基本类型的使用在声明变量时是有相同之处,同时也要注意到其不同之处。
其中:member-ist结构成员可以是:标量、数组、指针、或其他结构(不能包含自身结构类型,但是可以包含,自身指针的引用)
结构体变量对结构体变量成员操作有两种方式:结构体变量直接引用变量(x.a)和指向该结构体变量指针进行操作("->")。
variable-list:是定义的结构体变量,可以为:单个机构体变量,结构体数组,指向结构体的指针。
例一:
struct tag{ int a; char b};
struct COMPLE
{
int a;
float b;char c;