结构体的定义和基本使用

结构体的定义和基本使用

C++中的类型有int double char等,定义一种结构就相当于定义一种类型,可以在定义所定义类型的变量。

一定义结构体
下面我将由一个例题来引出结构体的定义
(为方便表达将工人薪水简化为整数)

在这里插入图片描述

struct employee
{char name[12];
int year;
int phone;
int salary;
};struct是关键字,employee是新类型的名称,
name、 year、phone、salary是一系列的变量)

定义的该种类型的成员应该包含了工人的姓名、年龄、电话、工资,即每一个新定义的成员的内容都是姓名、年龄、电话、工资。因此结构是由不同数据类型的数据组成的集合体。
由这个例题可以看出用结构表达方式简单明了的多,这也是结构的优点。

*应当注意的是
1.结构体的定义放在主函数之前

2.结构定义的时候不能实现无穷的递归*
例如

struct person
{char name[10];
double salary;
int year;
person son;
}

二初始化结构体
初始化结构体可分为两类:定义时初始化,在主函数中初始化。

(1)定义时初始化

struct empioyee
{char name[12];
int year;
int phone;
int salary;
}woork{"zhangsan",35,123456,6000,"lisi",37,123457,7500,"wangwu",39,123458,6900}

(2)在主函数中初始化

在此之前先了解访问结构变量成员的方法有两种,即
work.name
work->name

#include <iostream>
#include <cstring>
using namespace std;
struct empioyee
{char name[12];
int year;
int phone;
int salary;
};
int main()
{
employee work1,work2,work3;
strcpy(work1.name,"zhangsan");
work1.year=35;
//诸如此类初始化结构体
//注意字符串的不能用赋值而应用strcpy函数

在初始化结构时数据的输入

(1.)cin>>输入

struct empioyee
{char name[12];
int year;
int phone;
int salary;
};
int main()
{employee work;
 for(int i=0,i<10;i++)
 cin>>work.name[i];
 cin>>work.year;
 cin>>work.phone;

(2.)类型相同的结构变量可以整体赋值

struct weather
{{  double  temp;    double  wind;  } yesterday ;
int main ( )
{  weather  today ; 
   yesterday . temp = 10.5 ; 
   yesterday . wind = 3.1 ;
   today = yesterday ;//将昨天的温度和风力分别对应赋给了今天。
   

注意使用整体赋值时应注意仅限于类型相同的不同变量之间
接下来是一个反例

 struct  weather1  
 {  double  temp;    double  wind;  } yesterday ;
 struct  weather2  
 {  double  temp;    double  wind;  } today ;
int main()
{yesterday.temp=22.1;
 yesterday.wind=3.6;
 today=yesterday;

today和yesterday虽然包含的内容一样,但是todday和yesterday属于不同类型的变量不能用整体赋值。
最后应注意在定义结构体时不同类型之间是用“;”隔开,在初始化结构体是是用“,”隔开。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值