完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
5个回答
|
|
基础类型
1)整型: int unsigned int short unsigned short long unsigned short 2)浮点型:float double long double 3)字符型:char unsigned char signed char |
|
|
|
派生类型
结构体(stuct),结构体数组,结构体指针,共用体,枚举类型(enum),空类型 1)结构体(struct):结构体本质上是一种编程者自定义的数据类型,这不过这种数据类型相对复杂,它是由int char float等基础类型组成的。可以认为结构体是一种基础类型的聚合类型。 格式:struct 结构体名{ 结构体所包含的变量或数组 }; 例如:对于学生信息登记表,姓名为字符串,学号为整数,年龄为整数,所在的学习小组为字符,成绩为小数,因为数据类型不同,显然不能用一个数组来存放。 struct stu{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在学习小组 float score; //成绩 }; |
|
|
|
结构体数组:是指数组中的每个元素都是一个结构体,在实际应用中,通常用来表示一个拥有相同数据结构的群体。
struct stu{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在小组 float score; //成绩 }class[5] = { {"Li ping", 5, 18, 'C', 145.0}, {"Zhang ping", 4, 19, 'A', 130.5}, {"He fang", 1, 18, 'A', 148.5}, {"Cheng ling", 2, 17, 'F', 139.0}, {"Wang ming", 3, 17, 'B', 144.5} }; 当对数组中全部元素赋值时,也可不给出数组长度,例如: struct stu{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在小组 float score; //成绩 }class[] = { {"Li ping", 5, 18, 'C', 145.0}, {"Zhang ping", 4, 19, 'A', 130.5}, {"He fang", 1, 18, 'A', 148.5}, {"Cheng ling", 2, 17, 'F', 139.0}, {"Wang ming", 3, 17, 'B', 144.5} }; 结构体数组的使用也很简单,例如,获取 Wang ming 的成绩: class[4].score; 修改 Li ping 的学习小组: class[0].group = 'B'; |
|
|
|
结构体指针:当一个指针变量指向结构体时,我们就称它为结构体指针。
格式:struct 结构体名 *变量名; 例如: //结构体 struct stu{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在小组 float score; //成绩 } stu1 = { "Tom", 12, 18, 'A', 136.5 }; //结构体指针 struct stu *pstu = &stu1; 也可以在定义结构体的同时定义结构体指针: struct stu{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在小组 float score; //成绩 } stu1 = { "Tom", 12, 18, 'A', 136.5 }, *pstu = &stu1; 注意,结构体变量名和数组名不同,数组名在表达式中会被转换为数组指针,而结构体变量名不会,无论在任何表达式中它表示的都是整个集合本身,要想取得结构体变量的地址,必须在前面加&, 所以给 pstu 赋值只能写作: struct stu *pstu = &stu1; 而不能写作: struct stu *pstu = stu1; 还应该注意,结构体和结构体变量是两个不同的概念:结构体是一种数据类型,是一种创建变量的模板,编译器不会为它分配内存空间,就像 int、float、char 这些关键字本身不占用内存一样;结构体变量才包含实实在在的数据,才需要内存来存储。下面的写法是错误的,不可能去取一个结构体名的地址,也不能将它赋值给其他变量: struct stu *pstu = &stu; struct stu *pstu = stu; |
|
|
|
枚举(enum):
格式:enum 枚举名 {枚举元素1,枚举元素2,······}; 例如:一个星期有7天,如果不用枚举,我们需要#define 来为每个整型定义一个别名 #define MON 1 #define TUE 2 #define WED 3 #define THU 4 #define FRI 5 #define SAT 6 #define SUN 7 这样的代码比较麻烦,如果用枚举就简单多了 enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN }; !注意:第一个枚举成员的默认值为整型的 0,后续枚举成员的值在前一个成员上加 1。我们在这个实例中把第一个枚举成员的值定义为 1,第二个就为 2,以此类推。 |
|
|
|
只有小组成员才能发言,加入小组>>
791 浏览 0 评论
1151 浏览 1 评论
2527 浏览 5 评论
2860 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2710 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1070浏览 3评论
193浏览 2评论
455浏览 2评论
368浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
453浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 10:18 , Processed in 1.133652 second(s), Total 86, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号