结构体
1 结构图类型变量的定义和初始化。
struct 结构体名
{
类型标识符 成员名;
类型标识符 成员名;
} 变量名表列;
只有在声明了结构体变量以后系统才给结构体分配存储空间。
方法一 :
1 先定义一个 std_info的结构体且赋值
2 后定义一个结构体类型数组 s,共有三个元素,即s[0]-s[2],每个数组元素都是结构体类型,即每个数组元素都包括结构体类型std_info 的三个成员
struct std_info
{
int no;
char name[10];
char sex;
int score[3];
};
struct std_info s[3] = {{100,"ZhangYi",'f'},{100,"WangHong",'m',}.{102,"Lisan",'f'}};
方法二:
定义结构体类型的同时定义结构体类型数组s并赋初始值
struct std_info
{ int no;
char name[10];
char sex;
}s[3] = {{100,"ZhangYi",'f'},{100,"WangHong",'m',}.{102,"Lisan",'f'}};
方法三:
定义无名称的结构体类型的同时定义结构体类型数组s 并赋初值
struct
{
int no ;
char name[10];
char sex;
} s[3]={{100,"ZhangYi",'f'},{101,"WangHong",'m'},{102,"LiSan",'f'}};
2 访问结构体成员
例子1
#include<stdio.h>
#include<string.h>
int main(void)
{
struct std_info
{
int No;
float score;
}stu1;
//struct std_info stu1[0] = {123,1.2};
scanf("%d,%f",&stu1.No,&stu1.score);
printf("%d,%f\n",stu1.No,stu1.score);
}
例子2
#include<stdio.h>
#include<string.h>
struct std_info
{
int num;
char color;
char type;
}car[] = {{101,'G','c'},
{210,'Y','m'},
{105,'R','l'},
{222,'B','s'},
{308,'P','b'}
};
int main(void)
{
int i;
printf("number color type\n");
for (i=0;i<5;i++)
printf("%-9d%-6c%c\n",car[i].num,car[i].color,car[i].type);
return 0;
}
使用结构体变量引用成员形式
例
struct student stu1;
struct student *p=&stu1;
stu1.num = 101; 等价于 (*p).num = 101;
以下三种形式等价
结构体变量名.成员名 stu.num = 101;
(*结构体指针名).成员名 (*p).num = 101;
结构体指针名-> 成员名 p->num = 101;

浙公网安备 33010602011771号