前提介绍:L3 是一个结构体的地址,是一个指针
elem是该结构体内的一个结构体元素,elem是一个数组
算数类型是什么? 下该文章最下面
1.解决:
报错显示, 表达式必须包含算数 或 指针类型,
但elem是一个数组,它的类型明显不是指针类型,
那么elem 的类型本质上应该就是一个算数类型,
而我们给elem定义的类型是Elemtype ,如下
虽然Elemtype类型的大小是4个字节,
但Elemtype依然不是算数类型,不能等同于4个字节的int类型
(1)错误想法
这时我们可能试着将 #define Elemtype int , 此时依然报错,
因为,Elemtype 是结构体类型的变量名, 而如果 #define Elemtype int
此时结构体变量名就是int , 明显是错的
(2)正确思路
因为Elemtype结构体只有一个int类型的元素,因此可以直接将该结构体删除,改完后代码如下
2.方法:
(1)根据报错显示的信息去思考,去回推,具体例子可以看上面的 1.解决 部分
(2)根据报错的代码首代码有没先检查该部分有基本的错误,没有就再去思考哪部分出错
总结: 2者需要结合一起 去想
3.数据类型:包括算数类型
基本类型和枚举类型统称为算术类型,因为基本类型和枚举类型的值都是数值。
算术类型和指针类型统称为纯量类型,因为变量的值是以数字表示。
枚举类型中是程序中用户自定义的整数类型。
数组类型和结构体类型统称为组合类型。