struct结构

社会主义新天地 提交于 2020-02-27 12:11:50
什么是结构?
  • 结构,就是一群不同或者相同类型数据的集合。
  • 类似于电话薄,有姓名,电话号码,家庭住址这些互有关联的信息。

一、定义结构

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结构的用法。
————————————————————————
。。。。。。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!