C中结构体和类的区别

C中结构体和类的区别结构体和类同样能够定义字段 方法和构造函数 都能实例化对象 这样看来结构体和类的功能好像是一样的了 但是他们在数据的存储上是不一样的 C 结构体和类的区别问题这两种数据类型的本质区别主要是各自指向的内存位置不同 传递类的时候 主要表现为是否同时改变了源对象 1 结构体是值类型 类是引用类型虽然结构体的初始化也使用了 new 操作符 可是结构体对象依然分配在堆栈上而不是堆上

结构体和类同样能够定义字段,方法和构造函数,都能实例化对象,这样看来结构体和类的功能好像是一样的了,但是他们在数据的存储上是不一样的

 

C#结构体和类的区别问题

这两种数据类型的本质区别主要是各自指向的内存位置不同。传递类的时候,主要表现为是否同时改变了源对象。

 

1.结构体是值类型,类是引用类型

虽然结构体的初始化也使用了new操作符,可是结构体对象依然分配在堆栈上而不是堆上

类在传递的时候,传递的内容是位于托管内存中的位置,结构体在传递的时候,传递的内容是位于程序堆栈区的内容。当类的传递对象修改时,将同时修改源对象,而结构体的传递对象修改时,不会对源对象产生影响。

 

2.结构体不能从另外一个结构或者类继承,本身也不能被继承,虽然结构没有明确的用sealed声明,可是结构是隐式的sealed

类完全可扩展的,除非显示的声明sealed   否则类可以继承其他类和接口,自身也能被继承

虽然结构不能被继承,可是结构能够继承接口,方法和类继承接口一样

 

3.结构:不能包含显式默认构造函数;没有析构函数,没有abstract和sealed(因为不能继承);不能有protected修饰符,可以不使用new初始化

在结构中初始化实例字段是错误的

类: 有默认的构造函数,有析构函数,可以使用abstract和sealed,有protected修饰符,必须使用new初始化。

 

如何选择用结构还是类 

 

作者:耑新新,发布于  博客园

转载请注明出处,欢迎邮件交流:

转载于:https://www.cnblogs.com/Amedeo/p/5738458.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232871.html原文链接:https://javaforall.net

(0)
上一篇 2025年9月4日 下午12:01
下一篇 2025年9月4日 下午12:22


相关推荐

  • clion 2022.01.13激活码【中文破解版】「建议收藏」

    (clion 2022.01.13激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~0HKLM1UCCY-eyJsaWNlbnNlSWQiOi…

    2022年3月31日
    165
  • BigDecimal类型 比较大小的方法[通俗易懂]

    BigDecimal类型 比较大小的方法[通俗易懂]1.转成intBigDecimalb1=newBigDecimal(“-121454125453.145”);if(b1.intValue()<0){ System.out.println(“金额为负数!”); System.out.println(b1);}2.compareTo方法结果是:-1:小于;0:等于;1:大于;BigDecimalb1=newBigDecimal(“-121454125453.145”);if(b1.compar

    2022年7月14日
    39
  • 纳德拉AI言论引争议 "Microslop"成热词,呼吁行业构建新共识

    纳德拉AI言论引争议 "Microslop"成热词,呼吁行业构建新共识

    2026年3月14日
    4
  • BufferedWriter[通俗易懂]

    BufferedWriter[通俗易懂]  带有默认缓冲的字符输出流。使用:  构造:BufferedWriterbf=newBufferedWriter(“outFilePath”);  写入:write(“thing”);  换行:newLine();  刷新缓冲区,会将内容写进目标文件:flush();  关闭该流的操作:close();importjava.io.BufferedWrit…

    2022年5月1日
    47
  • 软件著作权登记申请时的60页源代码格式

    软件著作权登记申请时的60页源代码格式申请软件著作权登记的时候会被要求提交 60 页的源代码 没有经验的开发者朋友第一次申请的时候难免会遇到因代码文档格式不正确 代码里含有其他版权信息等原因被要求补正的问题 从而导致拿证时间延误 为了帮助开发者朋友一次性顺利通过软件著作权登记的审查 下面为大家分享下自己总结的 60 页源代码整理攻略 第一步 请点击下载软件著作权登记源代码模板 第二步 将打算申请软著的软件名称及版本号替换模板里左上角 自助登记安卓版应用软件 V1 0 第三步 打开软件的代码文件 复制代码 第四步 回到本文档 Ctal A

    2026年3月17日
    2
  • wget 安装yum_没有yum命令

    wget 安装yum_没有yum命令wget是一个从网络上自动下载文件的自由工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP下载,并可以使用HTTP代理。”wget”这个名称来源于“WorldWideWeb”与“get”的结合。在线安装wget使用命令yum-yinstallwget

    2022年10月17日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号