什么是结构?
- 结构,就是一群不同或者相同类型数据的集合。
- 类似于电话薄,有姓名,电话号码,家庭住址这些互有关联的信息。
一、定义结构
1、结构类型的定义形式
-
struct 标识符
{
类型 成员1;
类型 成员2;
…
}; -
就以电话薄为例子
struct member
{
int id;//编号
char name[16];//姓名
char phone[16];//电话(这里因为电话号码太大超出“long”的范围改为“char”数组)
char address[100];//地址
};
2、声明变量
- 定义后声明
struct member
{
int id;
char name[16];
char phone[16];
char address[100];
};
member a1,a2,a3;//**注意这里与下文的不同**
- 定义同时声明
struct member
{
int id;
char name[16];
char phone[16];
char address[100];
}a1,a2,a3;//**注意这里与上文的不同**
- 说明:结构变量占有一片连续内存空间,具有结构类型的特征;
- 一个结构类型的成员可以是另一个已定义的结构类型;
- 例如
struct date
{
int month ;
int day ;
int year ;
} ;
struct employee
{
char name [ 10 ] ;
date birthday ;
long code ;
double salary ;
char address [ 50 ] ;
char phone [ 11 ] ;
} worker1, worker2 ;
- 声明时可以同时初始化;
struct …
…
…
}worker1{ “zken”,123456,254685,“beijing”,“15195487889”};
3、访问结构
还是以电话薄为例
#include <iostream>
#include <cstring>
using namespace std;
struct member
{
int id;//编号
char name[16];//姓名
char phone[16];//电话(这里因为电话号码太大超出“long”的范围改为“char”数组)
char address[100];//地址
};
int main()
{
member a;
a.id=7;
strcpy(a.name,"zken");
strcpy(a.phone,"15485857851");
strcpy(a.address,"beijing");
cout<<a.id<<endl;
cout<<a.name<<endl;
cout<<a.phone<<endl;
cout<<a.address<<endl;
}
输出结果
- 可以整体赋值
#include <iostream>
#include <cstring>
using namespace std;
struct member
{
int id;//编号
char name[16];//姓名
char phone[16];//电话(这里因为电话号码太大超出“long”的范围改为“char”数组)
char address[100];//地址
};
int main()
{
member a,b;
a.id=7;
strcpy(a.name,"zken");
strcpy(a.phone,"15485857851");
strcpy(a.address,"beijing");
b=a;
cout<<b.id<<endl;
cout<<b.name<<endl;
cout<<b.phone<<endl;
cout<<b.address<<endl;
}
输出结果是一样的
- 注意
struct member1
{
int id;//编号
char name[16];//姓名
char phone[16];//电话(这里因为电话号码太大超出“long”的范围改为“char”数组)
char address[100];//地址
}a;
struct member2
{
int id;//编号
char name[16];//姓名
char phone[16];//电话(这里因为电话号码太大超出“long”的范围改为“char”数组)
char address[100];//地址
}b;
这里的a,b,就不可以整体赋值,虽然里面的成员一样;
4、电话薄与很多人所以得用”结构数组“;
#include <iostream>
#include <cstring>
using namespace std;
struct member
{
int id;//编号
char name[16];//姓名
char phone[16];//电话(这里因为电话号码太大超出“long”的范围改为“char”数组)
char address[100];//地址
};
int main()
{
member a[10];//就是这里定义了个数组
a[0].id=7;
strcpy(a[0].name,"zken");
strcpy(a[0].phone,"15485857851");
strcpy(a[0].address,"beijing");
}
这就是一些简单的struck结构的用法。
————————————————————————
。。。。。。
来源:CSDN
作者:z_ken
链接:https://blog.csdn.net/z_ken/article/details/104497675