结构由**数目固定**的成员(又称域、项目、或元素)构成,**是由不同数据类型的数据组成的集合体**,各个成员可以具有**不同的数据类型**,包括基本类型和非基本类型。*一个结构变量在内存占有一片连续的存储空间,具有结构类型的特征。*
1
.定义结构
结构类型是用户自定义的;
(1)定义结构类型的说明语句形式;
struct 标识符
{ 类型 成员1;
类型 成员2;
…
类型 成员n;
};(注意分号)
例:
struct person
{ char name[10];
long code;
double salary;
};
(2)声明变量的方法
1.声明类型的同时声明变量
struct person
{ char name[10];
long code;
double salary;
} worker1,worker2,*emp;
2.声明类型后声明变量(灵活)
struct person
{ char name[10];
long code;
double salary;
} ;
person worker1,worker2,*enp;
说明变量的同时可以进行初始化
person worker={“Li",123456,3000.53}
3.直接声明结构类型变量(此时无结构类型标识符)
struct
{ char name[10];
long code;
double salary;
} ;
说明
一个结构的成员可以是另一个已定义的结构类型。
例
struct num
{ int a,b;};
struct book
{ int c;
num d;
};
2.
访问结构
(1)访问结构成员 结构变量.成员(用点运算符)
struct weather //声明结构类型
{ double temp,wind;};
int main()
{ weather today; //声明结构类型变量
today.temp=2.1; //对结构变量成员赋值(访问结构变量成员)
today.wind=3.1;
cout<<today.temp<<endl; //按成员输出
return 0;
}
若输入结构类型变量
cin>>today.wind
(2)用指针访问结构变量的成员
结构指针->成员
(结构指针).成员
struct person
{ char name[10];
long code;
double salary;
};
int main()
{ person pr1,p; //定义结构指针
p=&pr1; //取地址
strcpy((*p).name,“David Marat”);//对结构成员赋值
cout<<p->name<<endl;
return 0;
}
类型相同的结构变量可以整体赋值
注意:“类型相同的变量”是指同一类型标识符说明的变量。
(3)结构数组
结构的元素类型为结构类型时,称为结构数组。
struct person
{ char name[20];
int cout;
};
int main()
{person leader[3]={“li”,0,“zhang”,0,“fun”,0};
int i;
for(i=0;i<3;i++)
cout<<leade[i].name<<endl;
}
来源:CSDN
作者:始终无名
链接:https://blog.csdn.net/weixin_45865036/article/details/104545963