[TOC]
第九章结构体
结构体的定义
#include<stdio.h>
#include<string.h>
struct Student {
int num;
char name[20];
char sex;
char addr[30];
};
int main() {
struct Student stu_1;
stu_1.num=1001;
strcpy(stu_1.name,"xiaoming");
stu_1.sex='F';
strcpy(stu_1.addr,"shanxi");
printf("%d\t%s\t%c\t%s\n",stu_1.num,stu_1.name,stu_1.sex,stu_1.addr);
struct Student st[5]= { {1001,"xiaoming",'M',"shanxi" },
{1002,"zhangdong",'F',"beijing" },
{1003,"wangwu",'M',"xizang" },
{1004,"lisi",'F',"fujian" },
{1005,"zhaodong",'M',"nanjing" }
};
for(int i=0; i<5; i++) {
printf("%d\t%s\t%c\t%s\n",st[i].num,st[i].name,st[i].sex,st[i].addr);
}
return 0;
}
结构体定义2
#include<stdio.h>
#include<string.h>
struct Student {
int num;
char name[20];
char sex;
char addr[30];
} stu_1= {1001,"zhangsan",'M',"shanxi"};
int main() {
printf("%d\t%s\t%c\t%s",stu_1.num,stu_1.name,stu_1.sex,stu_1.addr);
return 0;
}
指针表示结构体
#include<stdio.h>
struct Student {
int num;
char name[20];
char sex;
char addr[30];
} stu_1= {1001,"zhangsan",'M',"shanxi"};
int main() {
struct Student *s;
s=&stu_1;//两种方式通过指针 表示数据
printf("%d\t%s\t%c\t%s\n",(*s).num,(*s).name,(*s).sex,(*s).addr);
printf("%d\t%s\t%c\t%s\n",s->num,s->name,s->sex,s->addr);
return 0;
}