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

江西省网站备案uc极速版福利一天能赚多少钱

江西省网站备案,uc极速版福利一天能赚多少钱,做网站用什么软件,网站后台登陆验证码不对结构体和联合 结构体 结构体包含一些数据成员#xff0c;每个成员可能具有不同的类型。 数组的元素长度相同#xff0c;可以通过下标访问(转换为指针)。但是结构体的成员可能长度不同#xff0c;所以不能用下标来访问它们。成员有自己的名字#xff0c;可以通过名字访问…结构体和联合 结构体 结构体包含一些数据成员每个成员可能具有不同的类型。 数组的元素长度相同可以通过下标访问(转换为指针)。但是结构体的成员可能长度不同所以不能用下标来访问它们。成员有自己的名字可以通过名字访问成员。 结构声明 在声明结构时必须列出它包含的所有成员。 struct tag {member-list} variable-list ; 定义一个结构体变量x(包含3个整数) struct{ int a; int b; int c; } x; 定义一个结构体数组或结构体指针 struct{int a; int b; int c; }y[20],*z; 声明一个名为simple的结构体 struct SIMPLE { charb float c; }; 使用声明的结构体定义结构体变量结构体数组或者结构体指针 struct SIMPLE x; struct SIMPLE y[20],*z; 为结构体变量重命名 typedef struct{int a; int b; int c; }Simple; Simple x; Simple y[20],*z; 结构成员 结构成员可以是标量、数组、指针甚至是其他结构。 struct COMPLEX{float fint a[20];long *lp; struct SIMPLE s;struct SIMPLE sa[10];struct SIMPLE *sp; }; 结构成员的直接访问 结构变量的成员是通过点操作符(.)访问的。点操作符接受两个操作数左操作数就是结构变量 的名字右操作数就是需要访问的成员的名字。 struct COMPLEX comp; 结构体中的结构体访问 comp.s.a 结构体中复杂变量的变量 ((comp.sa)[4]).c 结构成员的间接访问 结构体成员指针可以使用-访问成员 struct COMPLEX *cp; cp-f cp-a cp-s 结构的自引用 结构体中可以包含自身的指针但是不能包含自身的变量结构体中包含自己可以定义更复杂的数据结构如链表或树。 struct A{struct A a;//非法Aa中还是包含a无穷无尽 }; 下面合法因为指针的长度确定(32位或者64位)。 struct A{struct A *a; }; 结构的初始化 struct INIT_EX { int a;short b[10]; Simple c; }x{10,{1,2,3,4,5},{25,x,1.9 }}; 结构、指针和成员 typedef struct {int a;short b[2]; }Ex2; typedef struct EX {int a;char b[3];Ex2 c struct EX *d }Ex; Ex x { 10,Hi,{ 5,{ -1,25 } },0 }; Ex *px x; 将会产生以下变量 px(右值)表示px指针访问到的是px的内容(x的地址) px(左值)表示 px1如果有结构体数组表示下一个结构体。 *px(右值)解引用表示访问的是整个结构。 *(px1)作为右值表示访问到下一个结构体如果存在 px-a访问结构体成员 *px-c.b访问x中c的b的第一个成员优先级 *px-d对结构体中d指针进行解引用前提是d不是NULL指针对NULL指针解引用是一个错误 结构的存储分配 字节对齐 struct ALIGN{char a; int b; char C; }; 系统禁止编译器在一个结构的起始位置跳过几个字节来满足边界对齐要求因此所有结构的起始存储位置必须是结构中边界要求最严格的数据类型所要求的位置。成员 a必须存储于一个能够被 4 整除的地址。结构的下一个成员是一个整型值所以它必须跳过3个字节到达合适的边界才能存储在整型值之后是最后一个字符。 如果声明了相同类型的第2个变量它的起始存储位置也必须满足4这个边界所以第1个结构的后面还要再跳过3个字节才能存储第2个结构。(每个结构将占据12个字节的内存空间但实际只使用其中的6个) 你可以在声明中对结构的成员列表重新排列让那些对边界要求最严格的成员首先出现对边界要求最弱的成员最后出现这样可以最大限度地减少因边界对齐而带来的空间损失。 struct ALIGN2 {int b;char a;char c; }; 所包含的成员和前面那个结构一样但只占用8个字节的空间节省了33%。当程序将创建几百个甚至几千个结构时减少内存浪费的要求就比程序的可读性更为急迫。在这种情况下在声明中增加注释可能避免可读性方面的损失。 作为函数参数的结构体 传值和传引用 传值传递结构体副本结构体的每个成员都需要被复制到函数内修改后再复制回来(如果返回值是结构体的话)。 传递结构体指针最常用也是最高效的机制只需要传递一个地址(指针)而不是整个结构体。函数可以直接修改原始结构体的成员而不需要复制结构体减少内存复制的开销。 选择何时传递结构体而非指针 当结构体非常小其大小与指针大小相近或更小时传递整个结构体可能不会比传递指针消耗更多的资源。然而对于大多数实际应用中的结构体来说它们通常包含多个成员传递指针更为高效。 如果需要函数修改结构体的任何成员则推荐使用指针传递方式因为这样可以避免不必要的数据复制并允许函数直接更新原始数据。 位段 结构可以实现位段(bit field)的能力。 位段的声明和结构类似但它的成员是一个或多个位的字段。 这些不同长度的字段实际上存储于一个或多个整型变量中。位段的声明和任何普通的结构成员声明相同但有两个例外。首先位段成员必须声明为int、signed int或 unsigned int类型。其次在成员名的后面是一个冒号和一个整数这个整数指定该位段所告用的位的数目。 使用位段只是基于方便的目的。任何可以用位段实现的任务都可以使用移位和屏蔽来实现。 联合union 联合的所有成员引用的是内存中的相同位置。当你想在不同的时刻把不同的东西存储于同一个位置时就可以使用联合。 union可以存放不同数据类型的成员union中各成员共享一段内存空间, 一个union变量的长度等于各成员中最长的长度以达到节省空间的目的。该union变量可被赋予任一成员值,但每次只能赋一种值, 如果更改一个成员的值会影响其他成员的值。使用.运算符来访问union中的成员 应用场景 inode节点中文件类型的定义为union可以用union表示文件类型是普通文件管道文件字符文件块设备文件还是套接字文件这样可以节省空间SGI alloc二级分配器中的空闲链表节点使用union指针域和数据域共用一段内存在分配内存的时候数据会覆盖指针域在回收内存的时候指针域会覆盖数据域一次只能表示出一种特性union可以判断主机是按大端还是小端存储(具体见套接字编程) union{ short n; char num[2]; } 存一个数0x0102,判断num[0]是01(小端)还是02(大端)。
http://www.w-s-a.com/news/221765/

相关文章:

  • 网站建设费税率是多少项目备案信息查询
  • 网站开发php有哪些权威发布型舆情回应
  • 凡科建站有哪些弊端百度手机怎么刷排名多少钱
  • 南山网站公司在招聘网站做销售工资高吗
  • 百度联盟怎么加入赚钱合肥seo按天收费
  • 网站建设与用户需求分析加盟店排行榜加盟项目排行榜
  • 柳州市诚信体系建设网站wordpress建手机网站吗
  • 网站策划书是什么水产公司网站源码
  • 温州做网站多少钱网站服务器机房
  • 网站公司设计 网站首页什么网站专门做图片
  • 书店网站怎么做网站点击快速排名
  • 太阳镜商城网站建设公司做网站
  • 如何制作个人作品网站宣传片拍摄合同
  • 关于微网站策划ppt怎么做做插画的网站
  • 做设计网上揽活哪个网站最好中企动力算大厂吗
  • 电子商务网站开发常用工具牡丹江吧
  • 四川成都网站制作公司wordpress 获取某个分类的文章
  • wordpress 编辑器推动门户网站建设不断优化升级
  • 做游戏网站的前景温江区建设局网站
  • 济南做微网站推广做网站seo优化总结
  • 巢湖网站建设电话长沙大型互联网公司
  • wordpress站群主机海南人
  • 云南网站建设维护商业网站建设教程
  • 云南省滇中引水工程建设管理局网站jsp个人网站设计
  • 网站建设 域名业务 邮箱互联网装饰网站
  • 建设厅技工在哪个网站上查询有了网站模板 还要怎样做
  • 城市联盟网站怎么做百度云网站建设视频教程
  • 织梦cms 官方网站网页视频如何下载到电脑
  • 查询建设公司业绩网站国外外链平台
  • 搭建直播网站需要怎么做做石材网站步骤