C语言 / 数据结构中出现报错: 表达式必须包含算数或指针类型,但他具有类型 “XXX” 。 报错问题的解决 以及 方法

前提介绍: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.数据类型:     包括算数类型

基本类型枚举类型统称为算术类型,因为基本类型和枚举类型的值都是数值。
算术类型指针类型统称为纯量类型,因为变量的值是以数字表示。
枚举类型中是程序中用户自定义的整数类型。
数组类型结构体类型统称为组合类型。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值