当前位置: 首页 > news >正文

教学网站开发视频品牌代运营公司

教学网站开发视频,品牌代运营公司,网站规划建设实训报告,建网站公建网站公司C之struct和union对比介绍 在C中#xff0c;struct和union都是用来定义自定义数据类型的关键字#xff0c;但它们的作用略有不同。 首先了解一下它们的基本概念#xff1a; struct#xff08;结构体#xff09;#xff1a;struct 是一个用户自定义的数据类型#xff…C之struct和union对比介绍 在C中struct和union都是用来定义自定义数据类型的关键字但它们的作用略有不同。 首先了解一下它们的基本概念 struct结构体struct 是一个用户自定义的数据类型可以包含多个不同类型的成员变量可以包含函数。这些成员变量在结构体中是独立的它们分别占用独立的内存空间。结构体中的成员可以通过指定的访问权限public, private, protected进行访问控制。 union联合体union 也是一个用户自定义的数据类型但不能包含函数。它的成员共享同一块内存空间。这意味着union 中的所有成员变量都位于同一个内存区域且内存空间的大小由最长的成员变量决定。 如果需要定义一个包含多个具有不同数据类型的成员的数据类型可以使用struct关键字。例如一个学生信息的数据类型包含学号、姓名和成绩等成员可以用struct来定义 struct Student { int id; string name; float grade; }; 使用struct定义的类型非常直观也很容易操作不需要过多的安全性考虑。 如果需要定义一个可以共享内存的数据类型可以使用union关键字。union中的不同成员可以在同一时间只有一个是有效的因为它们共用同一块内存。例如定义一个可以同时存储int、float和char类型数据的数据类型可以用union定义 union Data { int i; float f; char str[20]; }; 使用union关键字定义的类型具有较高的危险性因为它的成员共享同一块内存如果使用不当容易出现数据混乱等问题需要特别注意安全性。 在 C 中struct 和 union 的成员默认是公共的public但是可以根据需要设置访问权限例如将某些成员设置为私有private或受保护protected。具体的访问权限设置通过在成员声明时添加访问修饰符来实现。 struct 可以有函数成员union不能包含函数成员。 因此struct和union的使用还是根据具体情况而定需要根据问题的实际需求进行选择。 对于 struct结构体它的成员可以是以下类型 数据成员可以是任何合法的 C 数据类型包括基本数据类型如整型、浮点型、布尔型、自定义数据类型如类、结构体、枚举等。 函数成员成员函数在 struct 内部定义的函数可以用于操作 struct 的数据。函数成员可以访问 struct 的私有成员和保护成员。 静态成员可以是静态数据成员或静态函数成员。静态数据成员是 struct 类型的对象共享的数据静态函数成员是不依赖于具体对象的函数。 struct结构体示例如下 #include iostream using namespace std;struct Point {int x;int y;void print() {cout Point: ( x , y ) endl;}static int count;static void incrementCount() {count;} };int Point::count 0;int main() {Point p1 {3, 4};p1.print(); // 输出: Point: (3, 4)Point::incrementCount();cout Point count: Point::count endl; // 输出: Point count: 1return 0; }对于 union联合可以包含以下类型的成员 数据成员可以是任何合法的 C 数据类型包括基本数据类型如整型、浮点型、布尔型、自定义数据类型如类、结构体、枚举等。注意union 的数据成员共享存储空间只能存储一个成员的值。 嵌套结构体或联合可以在 union 内部定义嵌套的 struct 或 union。 union联合示例如下 #include iostream using namespace std;union Data {int i;float f;char c; };struct Employee {string name;union {int age;float salary;}; };int main() {Data d;d.i 42;cout Data value: d.i endl; // 输出: Data value: 42Employee e;e.name John;e.age 30;cout Employee: e.name , e.age years old endl; // 输出: Employee: John, 30 years olde.salary 5000.0;cout Employee: e.name , salary: e.salary endl; // 输出: Employee: John, salary: 5000return 0; }
http://www.yingshimen.cn/news/32697/

相关文章:

  • 网站建设介绍会发言稿荆门刚刚发布的
  • 整站优化全网营销wordpress主题 自适应
  • 如何为一个网站做短连接wordpress单页淘客源码
  • 广州骏域网站建设专家 V最便宜的购物app
  • 口碑好的网站开发公司网站备案 现场提交
  • 泉州网站建设优化公司wordpress的android应用
  • 招商网站建设目的wordpress固定设备登录
  • 林业公司网站模版昆明企业官网制作
  • 毕业设计网站题目建筑工程公司有哪些职位
  • 常熟网站制作设计广州万户网站公司
  • 做网站需要写配置文件吗网页设计师培训水公司
  • 黄岛开发区网站制作一般公司网址都怎么写
  • 北京响应式网站建设报价软件代做公司
  • 怎么修改网站后台权限湘潭网站设计外包服务
  • 什么网站教做美食企业培训权威机构
  • 像那种代刷网站怎么做电子商务网站建设需求分析报告
  • 做网站导航能赚钱吗分类信息网站建设方案
  • 网站建设合同属于什么类别成功营销的案例
  • 搭建网站哪个好单页设计是什么
  • 怎么用html5做自适应网站wordpress连连支付
  • 罗湖附近公司做网站建设哪家好安丘市住房和城乡建设局网站
  • 潍坊知名网站建设最新报价城市宣传网站建设方案
  • 建设网站需要购买ip访问 wordpress
  • 建设网站备案与不备案区别网站建设方案200字
  • 自适应网站开发教程安徽建设工程信息网平台
  • 玉溪网站制作公司国外建站数据
  • 企业建站系统官网网站推广软件破解版
  • 长春网站制作诚推源晟中国公路建设行业协会网站上
  • 上海住房和城乡建设部网站首页苏州企业网站建站系统
  • 福州网站建设市场网站页面的滑动怎么做的