1.结构体定义:
用一种类型定义两种及以上的类型
将int,char,整型,数组给杂糅到一起
2.框架及顺序表定义
typedef struct 初始名称
{
属性1 变量名1;
属性2 变量名2;
.....
}由typedef定义的别名;
//顺序表定义
typedef struct shunxubiao
{
int data[maxsize];
int length
}SqList;
SqList L; //定义变量L为SqList类型
3.如何取表中的内容
点操作
例如:变量L已经定义data[50],length
int A;
A=L.data[50];
int B;
B=L.length;
疑难解答:很多同学会有疑问,typedef定义一个别名岂不是多此一举?请看下文
typedef int ZhengXing; //Zhengxing=int
int main()
{
Zhengxing a;
Zhengxing b;
Zhengxing c;
.....
return 0;
}
如果我们定义了一万个int类型的变量,要改成double类型的变量,需要改一万次,那如果我们开始就定一个一个别名,那我们就需要改一次就可以了
疑难解答:有些同学对结构体不熟悉,我再强调一下
struct 人 { //人在此处就是结构体的名字,和后续定义的变量不一样
char 姓名[10];
int 资产;
char 配偶[10]; //名字是字符类型的
};
专业一点,改成English:
struct person{
char name[10];
int property;
char mate[10];
};
现在给你一个例子进行赋值:马华,一个亿,配偶张颖
struct person no1 = { //person为结构体名,no1为变量名
"马云“,
999999999999,
“张颖“,
}
也可以这样赋值
struct person no2 ={
.property=999999999,
.mate="林宁“, //这里是逗号,不是分号
.name="王健林“
};
结构体的指针
char* p;
struct person *sp=&no1;
//取到了no1的首地址
//将结构体看成普通的结构体理解即可
通过指针访问结构体变量
//对指针解引用*sp,获取结构体变量no1
//*sp=n01
//再使用点运算(.)运算符获取成员
(*sp).property
//第二种方法
sp->property