sdau 结构体的定义和基本使用

Hi~ o( ̄▽ ̄)ブ
今天学习了结构体的相关知识点,在此做些总结,如果有不对或缺少的地方希望指正和补充。

假设有多个对象(id,人名,手机号等)

id : 10001 ,10002,10003…
对应人名:zhang,wang,li…
对应手机:123000001,123000002,12300003…

现在以一个人的id来查找,返回这个人所有的信息(包括id,人名,手机号等)。
若把id,人名,手机号分开表示,万一数据过多,就会显得很乱,不直观,要写的相关函数也会因为字段太多变得很复杂。 (。^▽^)
ps: (取oo为函数名)

int oo(int  id, char  name[ ] , char phone[ ])**
 {......
.....}

此时 可以用结构体函数来解决这样类似的问题。
struct 结构体
将一些基本的类型组合起来,构成一个新的自定义的类型,这里我们命名为person
**

struct person
 {  int  id;
 char name[  ];
 char phone[ ];
  };**

成员变量为 id,name,phone,
注意:struct定义要放在主函数外
在声明结构类型变量可以同时初始化
例: **

struct person
 {  int  id;
 char name[ ] ;
 char phone[  ];
  }; worker1={10001 , "zhang" , "123000001" } ;

访问结构变量成员

#include<iostream>
using namespace std ;
struct  weather	  // 声明结构类型
{  double  temp;    double  wind;  } ;
int main ( )
{  weather  today ;	// 声明结构类型变量
    today . temp = 10.5 ;	// 对结构变量成员赋值
    today . wind = 3.1 ;
    cout << “Temp = ” << today . temp << endl ;	 // 按成员输出
    cout << “Wind = ” << today . wind << endl ;
}

对成员赋值时要加 ( . ).←这是个圆点

用指针访问结构变量

# include <iostream>
using namespace std ;
# include <cstring>
struct  person
{ int id ;  char name[20];   char phone[20]; } ;
int main ( )
{  person   pr1 ;
   person *  pp ;		// 定义结构指针
   pp = & pr1 ;		// 取结构变量地址
   pp -> id = 10001 ;// 对结构成员赋值
   strcpy ( pp -> name ,  “zhang” ) ;	
   strcpy ( pp -> phone ,  “123000001” ) ;
   cout << pp -> id<< ‘\t’ << pp -> name<< ‘\t’ << pp -> phone<< endl ;
}

代码中对字符串的赋值用到了strcpy,若成员变量为直接的数可以直接用 = 号。
strcpy需要加上#include<cstring>头文件。

类型相同的结构体变量还可以整体赋值

# include <iostream>
using namespace std ;
struct  weather		
{  double  temp;    double  wind;  } yesterday ;
int main ( )
{  weather  today ;	
   yesterday . temp = 10.5 ;	
   yesterday . wind = 3.1 ;
   today = yesterday ;	// 结构变量整体赋值
   cout << “Temp = ” << today . temp << endl ;
   cout << “Wind = ” << today . wind << endl ;
}

已知yesterday的值,而today的值和yesterday的值相同且结构体类型相同,即可以 today = yesterday来进行整体赋值。(尽管结构变量类型,若结构体名不同不可整体赋值比如struct weather1和struct weather2的变量类型相同,结构体名不同,不可整体赋值)

结构数组同样可行,

struct person [3]

对结构体数组初始化的形式是在定义数组的后面加上
如果对三个人zhang,wang,li,进行投票,

struct person [3]={"zhang",0,"wang",0,"li",0}

初始票数都为0,把zhang,票数绑在一起,在进行循环计算票数,输出结果。

小结(老师写的(●’◡’●))
结构类型用struct定义,它由不同类型的数据成员组成。

结构变量在内存占有一片连续的存储区间

结构变量成员用圆点运算符和箭头运算符访问

数组元素为结构类型时,称为结构数组,定义和访问遵循数组和结构的语法规则。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值