一、结构体
结构体可以让C语言创造出一个新的类型。
如下代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//创建一个学生的类型
struct stu//结构体可以让C语言创建出新的类型出来
{
char name[20];
int age;
double score;
};
//创建一个书的类型
struct book
{
char name[20];
float price;
char id[30];
};
int main()
{
struct stu s { "awei", 21, 98.5 };//结构体的创建和初始化
printf("%s %d %lf",s.name,s.age,s.score);//结构体变量.成员变量
return 0;
}
上述代码中创建了一个学生类型和一个book类型,类型中有其希望输出的变量。在主函数中可以对结构体进行创建和初始化,并且输出结果如下:
二、结构体指针及其第一种输出形式
结构体的创建和初始化也可以用指针的形式,如下代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//创建一个学生的类型
struct stu//结构体可以让C语言创建出新的类型出来
{
char name[20];
int age;
double score;
};
//创建一个书的类型
struct book
{
char name[20];
float price;
char id[30];
};
int main()
{
struct stu s { "awei", 21, 98.5 };//结构体的创建和初始化
printf("1:%s %d %lf ",s.name,s.age,s.score);//结构体变量.成员变量
struct stu* ps = &s;
printf("2:%s %d %lf ", (*ps).name, (*ps).age, (*ps).score);
return 0;
}
上述代码中对结构体的创建和初始化运用的就是指针。上述代码运行输出结果如下:
三、结构体指针及其第二种输出形式
结构体指针的输出形式不仅可以用这种形式
struct stu* ps = &s;
printf("2:%s %d %lf ", (*ps).name, (*ps).age, (*ps).score);
也可以采取下种形式
printf("3:%s %d %lf ", ps->name, ps->age, ps->score);
如下代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
struct stu//结构体可以让C语言创建出新的类型出来
{
char name[20];
int age;
double score;
};
//创建一个书的类型
struct book
{
char name[20];
float price;
char id[30];
};
int main()
{
struct stu s { "awei", 21, 98.5 };//结构体的创建和初始化
printf("1:%s %d %lf ",s.name,s.age,s.score);//结构体变量.成员变量
struct stu* ps = &s;
printf("2:%s %d %lf ", (*ps).name, (*ps).age, (*ps).score);
printf("3:%s %d %lf ", ps->name, ps->age, ps->score);
return 0;
}
上述代码输出结果如下