一,结构体优点如下,
(1)可以包含不同数据类型的一个结构体
(2)相同的结构体变量是可以相互赋值的
(3)节省内存空间
注意:结构体声明的时候本身不占用任何内存空间,只有当你用你定义的结构体类型定义结构体变量的时候计算机才会分配内存。
直接内存操作避免了栈空间开辟结构变量空间的需求,节省内存。
(4)效率高
根据反汇编的思想,结构体在栈中是离散的,而数组在栈中是连续的,而访问起来结构体相对快一些,也在一些教材上看到过,说结构体的效率高是拿空间换取时间的,我个人认为,应该是存储和访问方式的不同而使其效率较高。(有更好的说法希望读者朋友们多多指点)
举例: struct data
{
int num;
char name;
float score;
};
data t1,t2;
一段简单代码
#include"iostream"
#include"string"
using namespace std;
struct data
{
int num;
char name;
float score;
};
int main()
{
data t1,t2,t3; //定义结构体变量
cin>>t1.num>>t1.name>>t1.score;
t2=t1; //结构体变量之间相互赋值
t3=t1;
data *p; //结构体指针
p=&t1; //指针指向结构体变量t1的内存地址
cout<<t1.num<<endl<<t2.name<<endl<<t3.score<<endl; //把t1所对应的地址
cin>>p->name>>p->num>>p->score;
cout<<p->name<<endl<<p->num<<endl<<p->score<<endl;
cout<<(*p).name<<endl<<(*p).num<<endl<<(*p).score<<endl;
cin.get();
}10;
二,结构体的使用方向
主要用于包含不同类型的变量时,比如,学生信息登记表,学生姓名(char),学号(int),年龄(int), 性别(char),成绩(float)等等,这时候就需要用到结构体了。而数组里面的数据类型和长度必须保持一致。
初学,感觉有很多地方很矛盾,在以后的学习当中会逐步深入理解,也希望读者朋友们能指点迷津,一起进步,一起成长!