• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

C语言中结构体和类有什么区别

等事项的 2020-03-26 浏览量:890
两个在使用上有什么不同的地方
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 结构体定义中默认情况下的成员是public,而类定义中的默认情况下的成员是private的。类中的非static成员函数有this指针,类的关键字class能作为template模板的关键字 即template<class T> class A{}; 而struct不可以。
    实际上,C中的结构体只涉及到数据结构,而不涉及到算法,也就是说在C中数据结构和算法是分离的,而到C++中一类或者一个结构体可以包含函数(这个函数在C++我们通常中称为成员函数),C++中的结构体和类体现了数据结构和算法的结合
    • 发布于 2020-04-08
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:8
  • 结构体跟类的概念确实有点像,尤其是跟C++中的类。
    先说相同点:
    (1)结构体和类都可以实现对于数据的封装,比如将一辆车定义为由多个部分组成,如车身、车轮、车灯等。

    (2)结构体和类都是可以嵌套的。

    但是不同在于:
    (1)C语言中结构体中只可以定义成员变量,如果你说你在结构体中可以定义成员函数和构造函数,那应该是C++而不是C语言,C语言作为面向过程的语言是要将数据和算法进行分离的。Java的类除了可以封装成员变量,还可以封装成员函数,也就是对于成员变量的操作。
    (2)结构体中的成员变量都是可以直接访问的,而类则可以通过声明public、protected、private或者不加权限修饰符来进行访问权限的控制。另外类是可以继承的,子类可以通过继承获得父类的一些属性或者方法,这是结构体所不具有的。
    (3)结构体仅仅是封装数据用的,也可以说仅仅是自定义的一种变量类型;而java作为一种纯面向对象语言,将所有东西都封装在类中,包括程序执行入口的Main方法。
    (4)要单纯说Java的类相对于C语言结构体的优势,倒不如宏观上看面向对象编程思想和面向过程编程思想的区别,这是两种不同的思维方式,楼主可以看一下比较经典的斐波那契数列的面向过程解题方法和面向对象解题方法。

    • 发布于2020-03-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 结构体和类有相同点和不同点。 类里可以做函数实现。 结构体中不行。类中还可以对数据进行处理。
    • 发布于2020-03-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 严格来说,C语言中没有类,只有C++中才有类。


    不过对于结构体和类的区别,从内存数据组织角度这里有一个关键即:

    结构体仅仅是数据的组合

    类是数据和方法 的组合,虽然也有只有数据的类,但绝大多数类是和对应方法绑定的。

    • 发布于2020-03-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 类和结构体区别还是很大的,能直接存储方法也就是函数,结构体只能存函数指针,还有类可以继承,可以对内部对象读写保护和禁止读写,类还有构造和析构函数,功能上类比结构体强大很多,
    • 发布于2020-03-26
    • 举报
    • 评论 0
    • 0
    • 0

  • C语言中没有类的概念,C是面向过程的编程语言,而类是面向对象的编程语言中的概念,如C++,Java,C/C++混合编程中会涉及到类,当然C中和类的特征相似的也就是结构体了,面向对象中类是一类对象实例的抽象,包括成员属性和方法,C中也可以通过结构体来实现类似类的功能,结构体中的成员变量参数类似于类中成员属性(变量),结构体中还可以通过函数指针来确定函数类似于类中的方法(中间多了一步函数指针赋值后才能引用函数)
    • 发布于2020-03-27
    • 举报
    • 评论 0
    • 0
    • 0

  • C语言中结构体是用来定义一组数据的,比如说你要做一个学生管理系统,你可以用结构体定义学生的语文、数学、英语成绩还有学生姓名、年龄等等,在使用的时候会很方便的把这一组数据结合在一起,C语言是面向过程的语言不是面向对象的语言,所以C语言中没有类,只有函数
    • 发布于2020-03-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 结构体是一种值类型而类是引用类型。值类型用于存储数据的值引用类型用于存储对实际数据的引用。 那么结构体就是当成值来使用的类则通过引用来对实际数据操作。结构使用栈存储(Stack Allocation)而类使用堆存储;类是反映现实事物的一种抽象而结构体的作用只是一种包含了具体不同类别数据的一种包装结构;结构体赋值是 直接赋值的值. 而对象的指针 赋值的是对象的地址 如何选择结构还是类
    • 发布于2020-03-27
    • 举报
    • 评论 0
    • 0
    • 0

  • C语言里面没有类,只有C++有,类里面允许放函数,结构体只能放函数指针,
    • 发布于2020-03-27
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

C语言中结构体和类有什么区别