结构体
2015-10-23 15:34
239 查看
(1)结构体:结构体是一种自定义的数据类型
struct 结构体名
{
类型说明符 成员名;
..........
类型说明符 成员名;
}
结构体变量的定义:由结构体类型修饰的变量叫结构体变量;
struct 结构体名 变量名 = {初值};
例如 {*****上面定义******
struct student1
{
int num;
//学号
char name[20];
//姓名
char sex;
//性别
float score;
//分数
};
**************
}
struct student Ferrari = {1,"Ferrari",'m',99};
(上面定义,下面输出)
结构体成员的访问.成员变量名
输出:structstudent1 Ferrari={1,"Ferrari",'m',99.9};
(发现可以重复输出,structstudent1
Ferrari={1,"Ferrari",'m',99.9};
)
(2)匿名结构体:结构体的声明与变量的定义组合在一起
// 例如:
/* struct{
int num; //学号
char name[20]; //姓名
char sex; //性别
float score; //分数
}
*/
//匿名结构体输出
/*
printf("stu1.k=%d\n",stu1.k);
printf("stu1.kk=%f\n",stu1.kk);
*/
*********
(上面的定义)
struct
//{int k;
// float kk;
// char l;
// double ll;
//
//}
//stu1={5000,0.618,'g',3.141592};
***********
(3)typedef,为现有类型创建一个类型别名
语法:typedef 原类型名, 新类型名
(例)#########
typedef float fudian;
fudian a=3.1415;
printf("a=%.3f\n",a);
typedef int zx;
zx b=5000;
printf("b=%d\n",b);
#############
结构体成员依然可以是结构体(用的不多)
……………………………………
typedef struct data{
int year;
int month;
int day;
}MyDate;
typedef struct student3{
char name[20];
MyDate birthday;
}Student3;
Student3 stud1={"BenZ",{1999,12,5}};
printf("stud1.birthday.year=%d\n",stud1.birthday.year);
printf("stud1.birthday.month=%d\n",stud1.birthday.month);
printf("stud1.birthday.day=%d\n",stud1.birthday.day);
…………………………………………
//结构体数组“将多个结构体放到数组中。例如
// struct student students [10]={赋值};
例题:
// 输出最大成绩和全部信息
typedef
struct student001{
char name[15];
int num;
char sex;
int score;
}Student01;
Student01 k[5]={{"monse",1,'a',90},{"monkey",8,'a',99},{"mon",10,'a',88},{"monk",11,'a',77},{"monke",22,'a',66}};
int max=0;
for (int i=0; i<4; i++) {
if (max<k[i].score) {
max=k[i].score;
}
}
printf("%d\n",max);
for (int i=0; i<4; i++) {
if (max==k[i].score) {
printf("%s\n %d\n %c\n %d\n",k[i].name,k[i].num,k[i].sex,k[i].score);
}
}
struct 结构体名
{
类型说明符 成员名;
..........
类型说明符 成员名;
}
结构体变量的定义:由结构体类型修饰的变量叫结构体变量;
struct 结构体名 变量名 = {初值};
例如 {*****上面定义******
struct student1
{
int num;
//学号
char name[20];
//姓名
char sex;
//性别
float score;
//分数
};
**************
}
struct student Ferrari = {1,"Ferrari",'m',99};
(上面定义,下面输出)
结构体成员的访问.成员变量名
输出:structstudent1 Ferrari={1,"Ferrari",'m',99.9};
(发现可以重复输出,structstudent1
Ferrari={1,"Ferrari",'m',99.9};
)
(2)匿名结构体:结构体的声明与变量的定义组合在一起
// 例如:
/* struct{
int num; //学号
char name[20]; //姓名
char sex; //性别
float score; //分数
}
*/
//匿名结构体输出
/*
printf("stu1.k=%d\n",stu1.k);
printf("stu1.kk=%f\n",stu1.kk);
*/
*********
(上面的定义)
struct
//{int k;
// float kk;
// char l;
// double ll;
//
//}
//stu1={5000,0.618,'g',3.141592};
***********
(3)typedef,为现有类型创建一个类型别名
语法:typedef 原类型名, 新类型名
(例)#########
typedef float fudian;
fudian a=3.1415;
printf("a=%.3f\n",a);
typedef int zx;
zx b=5000;
printf("b=%d\n",b);
#############
结构体成员依然可以是结构体(用的不多)
……………………………………
typedef struct data{
int year;
int month;
int day;
}MyDate;
typedef struct student3{
char name[20];
MyDate birthday;
}Student3;
Student3 stud1={"BenZ",{1999,12,5}};
printf("stud1.birthday.year=%d\n",stud1.birthday.year);
printf("stud1.birthday.month=%d\n",stud1.birthday.month);
printf("stud1.birthday.day=%d\n",stud1.birthday.day);
…………………………………………
//结构体数组“将多个结构体放到数组中。例如
// struct student students [10]={赋值};
例题:
// 输出最大成绩和全部信息
typedef
struct student001{
char name[15];
int num;
char sex;
int score;
}Student01;
Student01 k[5]={{"monse",1,'a',90},{"monkey",8,'a',99},{"mon",10,'a',88},{"monk",11,'a',77},{"monke",22,'a',66}};
int max=0;
for (int i=0; i<4; i++) {
if (max<k[i].score) {
max=k[i].score;
}
}
printf("%d\n",max);
for (int i=0; i<4; i++) {
if (max==k[i].score) {
printf("%s\n %d\n %c\n %d\n",k[i].name,k[i].num,k[i].sex,k[i].score);
}
}
相关文章推荐
- 机器学习工具推荐
- Struts2 action配置
- JavaWeb + mySQL + Android 实现Android简单的注册登录
- 百度云管家上传大文件网络异常时自动重启
- 查找页面<img/>
- JavaScript之 ------ 基本运用语法(变量、运算符、语句)
- spring
- Java IO流分析整理
- HDU1142 (Dijkstra+记忆化搜索)
- Java语言基础(移位运算符)
- 原生的强大DOM选择器querySelector
- 用sql查询当天,一周,一个月的数据
- Android 通过网页打开自己的APP(scheme)
- 如何实现MindMapper中的幻灯片功能的合理运用
- SearchView 学习_0
- 利用NSOperation进行异步图片下载——设置UITabView数据,图片下载,占位图。解决异步下载和Cell重用造成的图片设置混乱。和多次重复下载的问题
- java中的代理模式 用接口
- 动态的计算带有行间距的字段的长高
- SVN服务器搭建和使用(二)
- VS2010 生成Xml格式的注释文档