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

网站建设 甘肃计算机软件网站建设

网站建设 甘肃,计算机软件网站建设,部分网站dns解析失败,做梯子的企业网站一、 结构体和联合体有什么区别?能否在声明过程当中缺省名字?(需要写清楚使用方法) 结构体的各个成员占用不同的内存空间,总大小是所有成员大小之和(结构体字节对齐): typedef str…

一、 结构体和联合体有什么区别?能否在声明过程当中缺省名字?(需要写清楚使用方法)

结构体的各个成员占用不同的内存空间,总大小是所有成员大小之和(结构体字节对齐

typedef struct Student {int a;char b;short c;char d;
} stu;
对齐规则:找成员中最大的类型 用他作为字节对齐数求出来的结果一定是对其数的整数倍整数倍的地址对齐
a
bxc
dxxx

        该结构体成员中的最大类型为 int 类型 4 字节,所以按 4 字节对齐,c 为 short 类型占 2 字节由于按整数倍的地址对齐所以不可以紧挨着 b 放,需要在前面补一位再放 c ,d 为 char 类型占 1 字节需要按 4 字节对齐,所以需要在后面补 3 位。 最后求得该结构体所占内存大小为 12 字节。

联合体的所有成员共享一块内存空间,联合体的大小等于其最大成员的大小

typedef union Student {int a;char c;
} stu;

        由于联合体的大小等于其最大成员的大小,所以该联合体所占内存大小为 4 字节。

a(c)aaa

可以用联合体检测大小端存储:

大端存储:低地址放高位高地址放低位

(十进制 1 ,大端存储)

00000000000000000000000000000001

小端存储:高地址放高位,低地址放低位

(十进制 1 ,小端存储)

00000001000000000000000000000000

检测大小端存储代码:

#include<iostream>
using namespace std;
int checkSystem() {union System {int a;char c;char b;} un;un.a = 1;return un.c == 1;
}int main() {cout << checkSystem(); // 输出 1 为小端存储,0 为大端存储 return 0;
}

可以在声明的时候缺省名字: 我们可以在定义的同时 创建该类型的对象,也可以在定义时加上                                                 typedef 对类型起别名 那这样就可以用别名再创建对象了

在定义的同时 创建该类型的对象:

#include<iostream>
using namespace std;
#include <string>
struct{int a;char d;char b;
} stu;int main() {stu.a = 1;cout << stu.a;return 0;
}

输出

1

在定义时加上 typedef 对类型起别名,用别名再创建对象:

#include<iostream>
using namespace std;
#include <string>
typedef struct{int a;char d;char b;
} stu;int main() {stu s;s.a = 1;cout << s.a;return 0;
}

输出

1

二、结构体可以包含函数吗?在 C 和 C++ 中有何不同?

C语言中的结构体通常不包含成员函数,而是使用外部函数来操作结构体的数据。

C++允许在结构体中定义成员函数,这些函数可以访问结构体的私有成员,并且可以像类一样使用封装。

C语言中的结构体没有访问控制的概念,所有成员默认都是公有的,可以直接访问。C++中的结构体可以有访问控制,支持public、private和protected访问修饰符。在C++中,
结构体(struct)的默认访问权限是公有的(public)。这意味着结构体中的成员默认情况
下可以被外部访问。与结构体不同,类(class)的默认访问权限是私有的(private)。
C 中的结构体的使用要加上struct关键字,或者用typedef取别名后直接使用,C++中的结构体使用时不需要加
struct关键字;在 C++ 中直接使用类型名加变量名即可C:struct A{};   int main () {struct A a;}C++:struct A{};int main () {A a;}
C语言中没有构造函数和析构函数的概念。C++中的结构体可以有构造函数和析构函数,允许在创建和销毁结构体实例时执行特定的初始化和清理代码
C的结构体不可以初始化成员,C++中的结构体可以初始化成员变量;
C语言不支持继承,因此结构体不能作为其他结构体或类型的基类。C++支持继承,结构体可以作为基类,允许其他类或结构体继承其属性和方法。

http://www.yayakq.cn/news/653324/

相关文章:

  • php网站开发实训报告书公众号微网站开发
  • 东莞广告公司东莞网站建设价格线上推广公司排名
  • 网站建设推广营销策划太原小程序开发定制
  • 专门做ppt会员网站品牌形象设计方案
  • 石家庄大的网站开发公司中国中小企业服务网
  • 网站目录结构 权限怎么从零开始做网站
  • 网站建设服务哪家便宜泰安网上房地产
  • 做影视网站用什么网盘最好狮山做网站
  • 辽宁城乡住房建设厅网站首页建行网上银行登录入口官网
  • 手机网站定制建设域名备案完了怎么做网站
  • 北京网站设计公司有哪些网站从哪些方面来做
  • 采集站seo课程wordpress文章部分显示图片
  • 网站盈利模式分析怎么做搜狗网站
  • 新郑市住房建设局网站wordpress 手机版
  • 建设电子票务系统的网站需要多少钱国家建设规范网站
  • 苏州市建设职业中心网站做百度网站那家好
  • 宿迁网站建设案例全屋设计师需要学什么
  • 做app还是做微网站好怎样在织梦网站建设目录
  • 网站icp备案证明文件wp wordpress教程
  • 太原网站建设vhuashi北京赛车网站开发
  • 烟台网站建设方案推广采集伪原创wordpress
  • 网站后台演示地址网站做支付宝接口吗
  • 鲲鹏建设集团有限公司网站小学网站源码php
  • 乐清建设网站公司WordPress切换标记
  • 怎么在工商局网站做注销如何开展一个网络营销活动
  • 个人网站如何建立网站建设定金合同
  • 订餐网站建设保定专业做网站
  • wordpress 回收站在哪洛阳公司做网站
  • 网站业务怎么做免费查企业老板的软件
  • 全面的苏州网站建设网站建设管理指导意见