- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 声明一个结构体类型的一般形式为:
struct 结构体名
{成员表列};
如:struct student
{
int num;char name[20];char sex;
int age;float score;char addr[30];
};
2 定义结构体类型变量的方法
(1)先声明结构体类型再定义变量名
例如:struct student student1, student2;
| | |
结构体类型名 结构体变量名
(2)在声明类型的同时定义变量
这种形式的定义的一般形式为:
struct 结构体名
{
成员表列
}变量名表列;
(3) 直接定义结构体类型变量
其一般形式为:
struct
{
成员表列
}变量名表列;
即不出现结构体名。
注意:
成员名可以与程序中的变量名相同,二者不代表同一对象。
3 可以引用结构体变量成员的地址,也可以引用结构体变量的地址。
例如:
scanf(″%d″,student1.num);
(输入student1.num的值)
printf(″%o″,&student1);
(输出student1的首地址)
4 结构体数组的初始化
struct student
{int num;char name[20]; char sex;
int age; float score; char addr[30];
}stu[2]={{10101,″LiLin″,′M′,18,87.5,″103 BeijingRoad″},{10102,″Zhang Fun″,′M′,19,99,″130 Shanghai Road″}};
5 指向结构体变量的指针
#include string.h#include stdio.hvoid main(){struct student{long num;char name[20]; char sex; float score;}; struct student stu_1; struct student* p; p=stu_1; stu_1.num=89101;strcpy(stu_1.name,”LiLin”); stu_1.sex=‘M’;stu_1.score=89.5; printf(″No.:%ld\nname:%s\nsex:%c\nscore:%f\n″,stu-1.num,stu-1.name,stu-1.sex,stu-1.score); printf(″No.:%ld\nname:%s\nsex:%c\nscore:%f\n″,(*p).num,(*p).name,(*p).sex,(*p).score); }
6 以下3种形式等价:
结构体变量.成员名
(*p).成员名
p-成员名
7 用指针处理链表
(1)malloc函数
(2) calloc函数
(3) free函数
其函数原型为void free(void *p);
7.1 typedef struct
{
int n;
struct
{
int y,m,d;
}date;
}PERSON;
下面定义结构体数组并赋初值
PERSON x[2]={1,04,10,1,2,04,12,30};
PERSON x[2]={{1,04,10,1},{2,04,12,30}};
PERSON x[2]={1,{04,10,1},2,{04,12,30}};
7.2
struct person
{
int id;
char name[10];
}per={1,123456};
per.name=123456
Per.name[0]=1
7.3
struct sk
{
int n;
float x;
}date,*p;
要使p指向date中的n域:
p=(struct sk *)date.n;
8 共用体的概念
使几个不同的变量共占同一段内存的结构称为“共用体”类型的结构。
共用体变量所占的内存长度等于最长的成员的长度。
不能引用共用体变量,
而只能引用共用体变量中的成员。
不能对共用体变量名赋值,
不能企图引用变量名来得到一个值,
文档评论(0)