结构体

1:为什么要建立结构体?
(1)在表示结构化信息时,如果用数组,信息会比较分散,不直观;
(2)对于代码过长的话,会导致重名;
(3)对于数据存取不方便;
eg1:比如要按ID来查找一个联系人,将联系人的信息返回。这个函数很难写出 来,因为字段多(条件),所以不方便。
所以针对以上现象,我们采用结构体。
2:什么是结构?
(1)结构是由不同的数据类型的数据组成的集合体。
(2)结构是由数目固定的成员构成。
(3) 各成员可以具有不同的数据类型
(4) 一个结构变量在内存占有一片连续的存储空间。
3:什么是结构体?
c/c++的主要基本类型:char ,int ,double,float以及数组,指针等。
将基本类型组合起来,形成新的数据类型,称为自定义类型
eg2:
struct contact
{ int ID;
char name[16];
char phone[16];
};
这里定义一个新的类型contact,地位和int ,double之类相同。
4:结构体的基本形式
struct TypeName
{ Members //成员变量可以是普通的变量/数组定义
};
其中struct是关键字,Typename为新类型的名称(变量名,由字母,下划线,数字组成),Members则为一系列的成员变量。
5:新类型(struct)的 使用(与基本类型差不多)
(1)定义一个变量
contact a;
(2)定义数组
contact as[3];
(3)指针
contact *pa=&a;
(4)作为函数参数
void test(contact a);
(5)作为返回类型
contact make(int id);
6:变量定义和初始化
(1)和一维数组一样,可以只初始化部分成员变量。
contact a=(201501,“John”}; //只初始化前两个成员。
contact a={0}; //则变量的每一位都是0,实现清零。
(2) 定义一个变量
contact a;//定义一个变量,不给初始值
定义时初始化:用大括号将各个成员的初始值列出。
contact a=
{ 201501, //int的初始化(用逗号)
“John”, //char 数组的初始化
“18601011223”
};
(3) 初始化时
注意使用大括号,末尾加分号;
各字段的初始值与改字段的类型匹配;
各初始值以逗号分开;
7:结构体的例子
(1)在这里插入图片描述

输入John的任一字段(信息条件),便可找到联系人。

#include<stdio.h>
struct contact
{ int  ID;
char name[20];
char phone{20];
};
int main()
{contact a=
{ 201501,  //int初始化
"John",  //char数组的初始化
 "18601011223",
 };
 return 0;
 }

(2)如何表示结构化信息?`
法一:

int ID[4]={201501,201502,201503,201504};
char name[4][16]=
{"John","Jennifer","Anxin","Unnamed"};
char phone[4][16]=
{ "18601011223", "138810022334",
"18600100100" ,"13111011011"
};

法二:

#include <stdio.h>
#include<string.h>//strcpy函数用于字符串的拷贝,需要<string.h>
struct contact
{int ID;
 char name[16];
 char phone[16];
 };
 int main()
 {contact a;
 a.ID=201501;
 strcpy(a.name, "John");
 stycpy(a.phone,"18601011223");
 printf("%d\t%s")
 return 0;
 }
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值