结构体复制

什么是结构体? 


  简单的来说,结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型,它的特点和数组主要有两点不同,首先结构体可以在一个结构中声明不同的数据类型, 第二相同结构的结构体变量是可以相互赋值的,而数组是做不到的,因为数组是单一数据类型的数据集合,它本身不是数据类型(而结构体是),数组名称是常量指针,所以不可以做为左值进行运算,所以数组之间就不能通过数组名称相互复制了,即使数据类型和数组大小完全相同。 

  定义结构体使用struct修饰符,例如: 

struct  test 

float  a; 
int  b; 
}; 

  上面的代码就定义了一个名为test的结构体,它的数据类型就是test,它包含两个成员a和b,成员a的数据类型为浮点型,成员b的数据类型为整型。 

  由于结构体本身就是自定义的数据类型,定义结构体变量的方法和定义普通变量的方法一样。

test  pn1; 

  这样就定义了一test结构体数据类型的结构体变量pn1,结构体成员的访问通过点操作符进行,pn1.a=10  就对结构体变量pn1的成员a进行了赋值操作。 

  注意:结构体生命的时候本身不占用任何内存空间,只有当你用你定义的结构体类型定义结构体变量的时候计算机才会分配内存。 

  结构体,同样是可以定义指针的,那么结构体指针就叫做结构指针。 

  结构指针通过->符号来访问成员,下面我们就以上所说的看一个完整的例子:

#include  <iostream>       
#include  <string>       
using  namespace  std;   
   
struct  test//定义一个名为test的结构体   
 
        int  a;//定义结构体成员a   
        int  b;//定义结构体成员b   
};   
   
void  main()           
 
        test  pn1;//定义结构体变量pn1   
        test  pn2;//定义结构体变量pn2   
   
        pn2.a=10;//通过成员操作符.给结构体变量pn2中的成员a赋值   
        pn2.b=3;//通过成员操作符.给结构体变量pn2中的成员b赋值   
   
        pn1=pn2;//把pn2中所有的成员值复制给具有相同结构的结构体变量pn1   
        cout<<pn1.a<<"|"<<pn1.b<<endl;   
        cout<<pn2.a<<"|"<<pn2.b<<endl;   
   
        test  *point;//定义结构指针   
   
        point=&pn2;//指针指向结构体变量pn2的内存地址   
        cout<<pn2.a<<"|"<<pn2.b<<endl;   
        point->a=99;//通过结构指针修改结构体变量pn2成员a的值   
        cout<<pn2.a<<"|"<<pn2.b<<endl;   
        cout<<point->a<<"|"<<point->b<<endl;   
        cin.get();   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值