什么是结构体?
简单来说结构体就是个可以包含区别数据类型个结构它是种可以自己定义数据类型它特点和主要有两点区别首先结构体可以在个结构中声明区别数据类型第 2相同结构结构体变量是可以相互赋值而是做不到是单数据类型数据集合它本身不是数据类型(而结构体是)名称是常量指针所以不可以做为左值进行运算所以的间就不能通过名称相互复制了即使数据类型和大小完全相同
定义结构体使用struct修饰符例如:
c 代码
struct test
{
float a;
b;
};
上面代码就定义了个名为test结构体它数据类型就是test它包含两个成员a和b成员a数据类型为浮点型成员b数据类型为整型
由于结构体本身就是自定义数据类型定义结构体变量思路方法和定义普通变量思路方法样
test pn1;
这样就定义了test结构体数据类型结构体变量pn1结构体成员访问通过点操作符进行
pn1.a=10 就对结构体变量pn1成员a进行了赋值操作
注意:结构体生命时候本身不占用任何内存空间只有当你用你定义结构体类型定义结构体变量时候计算机才会分配内存
结构体同样是可以定义指针那么结构体指针就叫做结构指针
结构指针通过->符号来访问成员下面我们就以上所说看个完整例子:
//作者:管宁
//所有稿件均有版权,如要转载,请务必注明出处和作者
#<iostream>
#<>
usingstd;
structtest//定义个名为test结构体
{
a;//定义结构体成员a
b;//定义结构体成员b
};
void
{
testpn1;//定义结构体变量pn1
testpn2;//定义结构体变量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*po;//定义结构指针
po=&pn2;//指针指向结构体变量pn2内存地址
cout<<pn2.a<<\"|\"<<pn2.b<<endl;
po->a=99;//通过结构指针修改结构体变量pn2成员a值
cout<<pn2.a<<\"|\"<<pn2.b<<endl;
cout<<po->a<<\"|\"<<po->b<<endl;
cin.get;
} >
总的结构体可以描述不能够清晰描述结构它具有所不具备些功能特性
最新评论