1. 结构

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

转载于:https://my.oschina.net/u/1582336/blog/263730

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值