1. 结构
2014-05-13 14:18
330 查看
1. 结构
1.1 结构特性结构是一种复合类型,和之前的数组类似。不同的是数组中的数据类型相同,而结构中的数据可以不同。正是因为数组中保存的数据相同,所以可以通过下标(索引)来访问,而结构则不能通过索引来访问。
1.2 结构变量的声明
结构可以把相关联的变量保存在一起,这样会很方便。例如,我们可以把一个人的信息定义在一个结构中,这些信息可能有姓名、年龄、性别、住址等。结构中的变量成为结构的成员。结构的定义格式如下:
struct{
char *name;
int age;
char *email;
}person1,person2;
这里定义了一个结构有三个成员,person1和person2是该结构类型的变量。可以通过点操作符(.)访问变量。例如:
person1.name = "tom";
person1.age = 20;
person1.email="tome@gmail.com";
person2.name = "kite";
person2.age = 30;
person2.email = "kite@gmail.com";
1.3 结构变量的初始化
可以在定义结构的时候对其变量进行初始化,下列代码定义一个点Point结构,具有两个成员x、y坐标。
struct{
int x;
int y;
}point1 = {20,30},
point2 = {100,150};
可以通过点操作符访问结构成员。
printf("point1.x=%d\n",point1.x);
printf("point1.y=%d\n",point1.y);
1.4 结构类型
可以在定义结构时,给结构起一个名字,这样在后面就可以通过该名字,像定义int类型一样定义结构类型了。
struct person {
int pid;
char *name;
int age;
};
struct person p1,p2;
p1.pid = 1;
p1.name = "tom";
p1.age = 20;
p2 = {2,"kite",30};
1.5 结构类型定义
可以通过使用typedef来定义结构类型,而不用再使用struct关键字
typedef struct person Person;
Person p1={1,"tom",20};
Person p2 = {2,"kite",30};
1.6 把结构类型作为函数的参数或返回值
例如,下面函数的参数和返回值都是一个结构类型。
struct person test(struct person p){
p.pid = 2;
p.name = "big tom";
p.age = 21;
return p;
}
测试代码:
struct person p = {1,"tom",20};
p = test(p);
printf("p.name=%s",p.name);
1.7 结构数组
结构数组是指结构中的元素是一个数组,可以使用结构数组来模拟一个简单的数据。例如,
struct person pers[] = {{1,"tom",20},{2,"kite",30},{3,"rose",40}};
1.8 结构的嵌套
结构的成员还可以是一个已经定义的结构,例如:
struct point {
int x;
int y;
};
struct rect {
struct point p1;
struct point p2;
};
该博客教程视频地址:http://geek99.com/node/1019
原文出处:http://geek99.com/node/876#
相关文章推荐
- 解决ASP.NET的TREEVIEW控件不能显示树型结构
- BMP文件结构的探索(转载)-
- 数组 内存结构
- oracle学习笔记(2)——物理存储结构——数据文件
- sql2005的表结构修改和数据库创建和授权的讲解
- (2013-4-1)数据结构实验一:打印成绩最高和最低的学生信息
- Socket网络编程常用的结构及函数小结
- 从内存溢出看Java 环境中的内存结构
- 网站信息结构设计要求有哪些
- 非常简单的viewpager+fragmen实现类似商城app结构
- Caffe学习笔记1-安装以及代码结构
- 深入Java虚拟机(1)——Java体系结构
- shell编程基础——分支结构
- 【数据结构】算法7.1-7.2 图的存储结构-数组表示法
- 在linux centos下列出文件夹和文件的目录树结构的方式方法
- 算法:迷宫求解(栈的应用)-数据结构(8)
- 紫书第二章-----循环结构程序设计
- struts2_day03_05_值栈内部结构(一)_06_值栈内部结构(二)_07_向值栈放数据三种方式
- Ax=b的可解性、解的结构(Lec8)
- 公共对话框——OPENFILENAME结构