struct结构

什么是结构?
  • 结构,就是一群不同或者相同类型数据的集合。
  • 类似于电话薄,有姓名,电话号码,家庭住址这些互有关联的信息。

一、定义结构

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值