C语言结构体
作用: 创建一个新的数据类型, 可以卸载函数的内部或外部
结构:
//struct 结构体名字{
// 数据类型1 成员变量名1;
// 数据类型2 成员变量名2;
// ...
// ...
// 数据类型n 成员变量n;
//};
//结构体的命名规范:大驼峰法
//多个成员变量之间用分号;隔开
//结构体外层的大括号后面要加分号;
// struct Student {
// short number;
// char name[20];
// char sex;
// float score;
// };
//定义一个结构体变量
//struct 结构体名字 变量的名字 = {对应的每个成员变量的处置,用逗号隔开};
// struct Student student = {123, "Mike", 'F', 99.9};
//获取成员变量的值
//变量名.成员变量名(点语法)
//student.number;
// printf("%hd\n", student.number);
结构体的重命名
/*
写法一
struct Rectangle {
int lon;
int width;
};
typedef struct Rectangle Rec;
*/
//写法二
typedef struct Rectangle {
int lon;
int width;
P dian;
}R;
typedef struct Student {
short number;
char name[20];
char sex;
float score;
}Stu;
结构体可以直接赋值
// struct Student stu1 = {1314, "guozong", 'M', 99.9};
// struct Student stu2 = {520, "qiaoming", 'M', 9.99};
// struct Student stu3 = {0};
// stu3 = stu1.score > stu2.score ? stu1 : stu2;
// printf("number = %hd sex = %c name = %s score = %.2f\n", stu3.number, stu3.sex, stu3.name, stu3.score);
//结构体内存占用
//以最大成员变量类型所占空间为分配单位
//按结构体成员声明顺序自上而下分配
//注:分配空间不足以存储成员变量时,分配新的空间单位
//结构体数组
// struct Student students[5] = {0};
Stu students[5] ={
{101, "aaa", 'f', 88.0},
{102, "bbb", 'm', 89.0},
{103, "ccc", 'f', 90.0},
{104, "ddd", 'm', 99.0},
{105, "eee", 'f', 97.0}
};
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4 - i; j++) {
if (students[j].score < students[j + 1].score) {
Stu temp = students[j];
students[j] = students[j + 1];
students[j + 1] = temp;
}
}
}
for (int i = 0; i < 5; i++) {
printf("num = %hd name = %s sex = %c score = %.1f\n", students[i].number, students[i].name, students[i].sex, students[i].score);
}
posted on 2015-03-02 14:46 taiyang2014 阅读(355) 评论(0) 编辑 收藏 举报