今天我们要学的新知识是结构体,相信大家都没有忘记我们期末时C语言项目实践要我们做的一个小游戏,我做的是贪吃蛇,里面就用上了结构体。我会在最后面带上我们小组写的贪吃蛇代码,让大家看看结构体在一个项目中如何真正实践。
结构体的诞生:因为在游戏中(这里我将使用大家比较熟悉的一款游戏王者荣耀为例子,因为王者荣耀使用的是C++进行开发的,同源 )的一个角色的数据类型十分复杂,比如我曾经打到深圳市33名的一个角色干将莫邪(小小臭屁一下hhh ),它本身包含了名字,生命,物攻,法强,物抗,法抗,法术吸血等等。角色本身的建模那与我们没有关系。我们如果要在代码中实现,是不是要定义一个char(字符串)来装名字,定义五个int来装生命,物攻,法强,定义一个浮点型来装法术吸血。一个游戏有很多个角色,我们之前所学的数组什么的只能用来装同一类型的数据,单独定义又很麻烦,还要自己去记住各个变量本身对应的量是哪个。因此结构体的出现就因为人们的需求出现啦
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include <stdio.h> struct Stu /*定义一个结构体*/{ char name[10 ]; int shengming; int wugong; int faqian; float fashuxixue; }; int main () { return 0 ; }
现在你就已经定义完了一个结构体,那接下来就是要把它用上,这里我来为大家展示一下干将莫邪的定义。上代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 #include <stdio.h> struct Stu /*定义一个结构体*/{ int shengming; int wugong; int faqian; float fashuxixue; }; struct Birthday { int year; int month; int day; }; struct Student { char name[30 ]; int num; float score; struct Birthday birthday ; }stu1; struct Studen { char name[20 ]; int num; float score; }stu = { "Mike" ,15 ,98.9 }; int main () { struct Stu ganjiangmoye = { 10000 ,0 ,500 ,23.4 }; stu1 =(struct Student) {"luozifeng" ,19 ,98.3 }; struct Studen stu3 ; stu3 = stu; printf ("stu.name:%s\tstu3.name:%s\n" ,stu.name, stu3.name); printf ("stu.num:%d\tstu3.num:%d\n" , stu.num, stu3.num); printf ("stu.score:%lf\tstu3.score:%lf\n" , stu.score, stu3.score); return 0 ; }