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

注册网络公司起什么名字手机优化专家下载

注册网络公司起什么名字,手机优化专家下载,wordpress页脚设置,实体店线上线下运营模式文章目录 前言柔性数组1.1 概念1.2 柔性数组的特点1.3 柔性数组的使用1.4 柔性数组的优势 总结 前言 说到柔性数组#xff0c;相信有很多学过C语言的读者都不知道这是个什么东西。不过没有关系#xff0c;相信本章能够带你从到认识到掌握柔性数组#xff0c;做一个充满知识… 文章目录 前言柔性数组1.1 概念1.2 柔性数组的特点1.3 柔性数组的使用1.4 柔性数组的优势 总结 前言 说到柔性数组相信有很多学过C语言的读者都不知道这是个什么东西。不过没有关系相信本章能够带你从到认识到掌握柔性数组做一个充满知识的man/woman。 在此处我先透露一下本次的知识点需要结合结构体和动态内存开辟的知识点。如果对这两个知识点不是很熟悉的读者可以翻阅我之前写过的文章。 那么话不多说就让我们开启柔性数组的学习之旅吧 柔性数组 也许你从来没有听过柔性数组这个概念但是它确实是真实存在的。 1.1 概念 在C99中结构体中最后一个成员允许使用未知大小的数组这个就叫做柔性数组成员。 例如 struct st_type {int i;int arr[0];//柔性数组成员 };上述代码可能有的编译器会报错导致程序无法正常执行可以改成以下代码 struct st_type {int i;int arr[];//柔性数组成员 };看到这里你心中可能会用这样一个疑问柔性数组有什么优势或者特点呢值得我去学习。那么接下来我们就来聊一聊柔性数组的特点。 1.2 柔性数组的特点 结构体中柔性数组成员前面至少有一个其他成员sizeof返回这种结构体的大小时是不包含柔性数组的大小包含柔性数组成员的结构体用malloc函数进行内存的动态分配并且分配的内存应该大于结构体的大小以适应柔性数组的预期大小 这里解释一下特点1和特点2 根据柔性数组的定义你会发现它的数组元素个数竟然是0放到正常的场景下这是不可能的这也就从侧面说明了没有人知道它真实的大小当然这是建立在程序员还未决定柔性数组成员的大小的条件下。那竟然不知道它真实的大小如果整个结构体有且仅有这么一个成员的话那么连同这个结构体大小也是未知的了故此我们做出了一种方案在一个包含着柔性数组的结构体中其前面必须至少得存在一个算得出来大小的成员。这样我们就在忽略柔性数组大小前提下可以得出该结构体大小。另外sizeof在计算这种结构体时不包含柔性数组成员的大小也是出于这方面的考虑。 例子 #includestdio.h struct test {char c;int arr[];//柔性数组成员其前面有一个已知大小的成员 };int main() {printf(%zd\n,sizeof(struct test));//这里输出的是1return 0; }1.3 柔性数组的使用 代码1 #includestdio.h #includestdlib.h typedef struct st_type {int i;int arr[]; }type_a;int main() {//因为我们需要对柔性数组成员的大小进行提前设定type* pa (type_a*)malloc(sizeof(type_a)100*sizeof(int));if(pa NULL){perror(malloc);return 1;}//业务处理pa-i 100;for(int i 0; i100; i){pa-arr[i] i 1;}free(pa);pa NULL;return 0; } 这样柔性数组成员arr相当于获得了100个整型元素的连续空间。 相信看到这里的读者已经感受到了柔性数组的魅力了。其能够克服普通数组无法改变其自身大小的缺点能灵活变化自身元素的个数。 1.4 柔性数组的优势 可能有的读者突发奇想你这个功能我不用柔性数组也能实现啊。 代码展示 #includestdio.h #includestdlib.htypedef struct st_type {int i;int* arr; }type_a;int main() {type_a* pa (type_a*)malloc(sizeof(type_a));pa-i 100;pa-arr (int*)malloc(sizeof(int)*(p-i));//业务处理for(int i 0; i pa-i; i){pa-arr[i] i 1;}//释放空间free(pa-arr); free(pa);pa-arr NULL;pa NULL;return 0; } 上述代码可以同样完成任务但是第一种写法有两种好处 第一个好处是方便内存释放 如果我们代码是在一个给别人用的函数中你在里面做了两次内存分配并把整个结构体返回给用户。用户调用free可以释放结构体的内存但是用户并不知道这个结构体内成员也需要进行free所以你不能指望用户来发现这件事。所以如果我们把结构体的内存以及其成员要的内存一次性分配好的话并返回给用户一个指针用户就可以根据这个给指针正确的找到并且使用动态开辟的空间之后再只需使用一次free就可以把所有的内存给释放掉了。 第二个好处是有利于内存的访问速度 连续的内存有益于访问速度的提升也有利于减少内存碎片。其实我个人感觉也没有提升多少反正你跑不了要用做偏移量做加法来寻址 总结 好了到这里我们就把柔性数组的知识点全部讲完了也相信大家对柔性数组有一定的认识了。所谓的柔性数组就像是一块具有柔性的布料可以在一定的环境下随意改变它的长度使其符合我们的预期达到我们想要的效果。
http://www.hkea.cn/news/14521332/

相关文章:

  • 深圳做英文网站公司做母婴用品的网站有哪些
  • 深圳商业网站建设wordpress 代码缩进
  • 官方网站建设投标书wordpress ueditor 百度编辑器
  • 怎样做网站漂浮公司建设网站的手续
  • 做的好的学校网站网站推荐入口
  • 南山商城网站建设多少钱多用户网络商城
  • 如何检测网站死链湖南怀化市住房城乡建设局网站
  • 网站建设与排名中国源码资源网
  • 高校网站建设的目的和意义贵州省建设厅网站
  • 网站制作学什么江苏国龙翔建设公司网站
  • 做网站需要数据储存么企业网站建设找哪家
  • 电子商务网站建设论文维护网站需要什么技术
  • 做杂志模板下载网站免费域名解析网站建设
  • 广州市建设和水务局网站天元建设集团有限公司2021年产值
  • 关于门户网站建设通报最好看的2018中文2019
  • 亿通网站建设单位做网站注意什么问题
  • 我想注册公司怎么注册优化关键词怎么做
  • 贵州省安顺市网站建设官网铺设
  • 乌市网站建设为建网站卖产品怎么样
  • 网站静态页面生成嘉兴网站建设优化
  • 常州网站备案平面广告设计专业
  • jQuery网站建设中倒计时代码惠州有没有做网站
  • 云虚拟主机怎么做网站做后期哪个网站素材好
  • 西宁市城乡建设网站网站做支付宝支付需要哪些资料
  • 重庆市住房和城乡建设厅网站首页营口网站建设价格
  • 下载网站的软件西安免费网站建设
  • 网站建设流程步骤为需求分析设计师自己做网站
  • 做网站参考文献南京小程序设计公司
  • 建设网站接活php无版权企业网站管理系统
  • 敏捷开发平台外贸网站优化价格