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

这篇具有很好参考价值的文章主要介绍了C语言 / 数据结构中出现报错: 表达式必须包含算数或指针类型,但他具有类型 “XXX” 。 报错问题的解决 以及 方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

表达式必须包含算术类型,编程过程出现的错误,数据结构,c语言,c++,c#

前提介绍:L3 是一个结构体的地址,是一个指针

 elem是该结构体内的一个结构体元素,elem是一个数组

算数类型是什么? 下该文章最下面

1.解决:

报错显示, 表达式必须包含算数指针类型

但elem是一个数组,它的类型明显不是指针类型,

那么elem 的类型本质上应该就是一个算数类型,

而我们给elem定义的类型是Elemtype ,如下

表达式必须包含算术类型,编程过程出现的错误,数据结构,c语言,c++,c#

 虽然  Elemtype类型的大小是4个字节,

但Elemtype依然不是算数类型,不能等同于4个字节的int类型

(1)错误想法

这时我们可能试着将  #define Elemtype int   , 此时依然报错,

表达式必须包含算术类型,编程过程出现的错误,数据结构,c语言,c++,c#

 因为,Elemtype 是结构体类型的变量名, 而如果 #define Elemtype int

此时结构体变量名就是int , 明显是错的

(2)正确思路

因为Elemtype结构体只有一个int类型的元素,因此可以直接将该结构体删除,改完后代码如下

表达式必须包含算术类型,编程过程出现的错误,数据结构,c语言,c++,c#

2.方法:

(1)根据报错显示的信息去思考,去回推,具体例子可以看上面的  1.解决  部分

(2)根据报错的代码首代码有没先检查该部分有基本的错误,没有就再去思考哪部分出错

   总结:   2者需要结合一起 去想

3.数据类型:     包括算数类型

基本类型枚举类型统称为算术类型,因为基本类型和枚举类型的值都是数值。
算术类型指针类型统称为纯量类型,因为变量的值是以数字表示。
枚举类型中是程序中用户自定义的整数类型。
数组类型结构体类型统称为组合类型。文章来源地址https://www.toymoban.com/news/detail-698902.html

表达式必须包含算术类型,编程过程出现的错误,数据结构,c语言,c++,c#

到了这里,关于C语言 / 数据结构中出现报错: 表达式必须包含算数或指针类型,但他具有类型 “XXX” 。 报错问题的解决 以及 方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 数据结构之表达式求值

    数据结构之表达式求值

     前言 运用堆栈解决表达式的求值,代码思路为: 1.定义两个栈,一个char类型的栈用于存放运算符(ysf)一个int类型的栈用于存放操作数(czs) 如一个表达式3+6*9,将“+”,“*”入ysf栈,将“3”“6”“9”入czs栈 2.运用getchar进行数据的录入,如果接收的是运算符,将其插入到运

    2024年04月29日
    浏览(11)
  • C++ 数据结构 栈 中缀表达式转后缀表达式并求值

    C++ 数据结构 栈 中缀表达式转后缀表达式并求值

    写在前面,这里用的是我自己写的Stack类,并非STL,实现方法为静态数组,但使用过程中的函数方法一样,无伤大雅。(完整code和Stack_static类赋在最后) 1.从左到右遍历 2.数,即参与运算数,直接放进后缀表达式之后 3.左括号 ,直接压入栈(因为括号的优先级最高,无需判断

    2024年02月03日
    浏览(13)
  • 数据结构 实验2——表达式求值

    数据结构 实验2——表达式求值

    一、实验名称:表达式求值 二、实验学时: 6 学时 三、实验目的 1.理解栈的结构特点和基本操作特性; 2.掌握利用栈实现表达式求值算法。 四、实验内容 ( 步骤 ) 输入一个算术表达式(以“=”结束),求其值。要求表达式以“=”结束,操作数为多位实数,对错误表达式要进行

    2023年04月08日
    浏览(10)
  • 【数据结构】超详细讲解:算术表达式转化为后缀表达式、前缀表达式、表达式树的构建

    【数据结构】超详细讲解:算术表达式转化为后缀表达式、前缀表达式、表达式树的构建

    作者: 努力学习的大一在校计算机专业学生,热爱学习和创作。目前在学习和分享:算法、数据结构、Java等相关知识。 博主主页: @是瑶瑶子啦 所属专栏: 【数据结构】:该专栏专注于数据结构知识,持续更新,每一篇内容优质,浅显易懂,不失深度! 近期目标: 写好专栏

    2024年02月08日
    浏览(9)
  • 【数据结构】12 堆栈应用:表达式求值

    【数据结构】12 堆栈应用:表达式求值

    有一个常量表达式的中缀表达式为:5 + 6 / 2 - 3 * 4,其后缀形式表示为: 5 6 2 / + 3 4 × -。后缀表达式的特点是运算符位于两个预算数之后。其前缀表达式为: - + 5 / 6 2 × 3 4。 后缀表达式相比于中缀表达式的求值要容易很多。 从左到右扫描该表达式: (1)遇见运算数5 6 2时不

    2024年02月20日
    浏览(17)
  • 数据结构 | 后缀表达式【深入剖析堆栈原理】

    数据结构 | 后缀表达式【深入剖析堆栈原理】

    Hello,大家好,国庆的第二天,带来的是数据结构中堆栈部分的后缀表达式,这也是一块有关栈的应用方面困扰了众多同学的一个大难题,今天就让我们一起解决这个难题📕 后缀表达式也称为 逆波兰表达式 ,也就是将算术运算符放在操作数的后面 例如【1 + 2 * 3】的后缀表达

    2023年04月27日
    浏览(11)
  • 数据结构 | 栈的中缀表达式求值

    数据结构 | 栈的中缀表达式求值

    目录 什么是栈? 栈的基本操作 入栈操作 出栈操作 取栈顶元素 中缀表达式求值 实现思路 具体代码 栈是一种线性数据结构,具有“先进后出”(Last In First Out, LIFO)的特点。它可以看作是一种受限的线性表,只能在表的一端进行插入和删除操作,这一端被称为栈顶,另一端

    2024年02月02日
    浏览(15)
  • 【数据结构】反射、枚举以及lambda表达式

    Java的反射(reflection)机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任 意一个对象,都能够调用它的任意方法和属性,既然能拿到那么,我们就可以修改部分类型信息;这种动态获取信 息以及动态调用对象方法的功能称为java语言的反射

    2024年03月13日
    浏览(12)
  • 数据结构——前缀、中缀、后缀表达式实现和转换(Java)

    数据结构——前缀、中缀、后缀表达式实现和转换(Java)

    1.7.1 概念 它们都是对表达式的记法,因此也被称为前缀记法、中缀记法和后缀记法。它们之间的区别在于 运算符相对与操作数的位置 不同 前缀 表达式的运算符位于与其相关的 操作数之前 ;中缀和后缀同理。 平时我们 日常使用 并最为熟悉的就是中缀表达式。如: 1 + 2 *

    2024年02月05日
    浏览(18)
  • 【数据结构与算法】双栈法解决表达式计算问题

    题目链接 题目描述: 给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。 注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval() 。 示例 1: 输入:s = “1 + 1” 输出:2 示例 2: 输入:s = \\\" 2-1 + 2 \\\" 输出:3 示例 3: 输入:s = “(1+(

    2024年02月10日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包