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

营销网站建设专业团队在线服务运维系统

营销网站建设专业团队在线服务,运维系统,接单做网页的网站,设计家装修效果图软件场景 我们需要存储常量的字节数组,并且数组里的字节数据可以是任意数值0-255。怎么存储? 说明 任意字节数组可以使用char或者unsigned char作为数据类型。比如以下的字符串声明。这种字符串数据可以通过strlen(buf)来计算它的长度,它会遇到…

场景

  1. 我们需要存储常量的字节数组,并且数组里的字节数据可以是任意数值0-255。怎么存储?

说明

  1. 任意字节数组可以使用char或者unsigned char作为数据类型。比如以下的字符串声明。这种字符串数据可以通过strlen(buf)来计算它的长度,它会遇到\0结束。常量字符串会自动在末尾增加一个\0结束符。
const char* buf = "helloworld";
  1. 如果常量字节数据带了\0字符,即0值,那么这种常量字符串就不适合,因为计算不了它的长度。这时候就可以使用字符数组,如以下的声明。这时候如果buf的长度可以通过sizeof(buf)来获取它的大小。但是也因为未预先定义大小的声明方式[],字符串初始化在后边自动添加一个\0字符,所以它的实际大小需要减一,sizeof(buf)-1. 这种数组声明可以有效的存储任意可见不可见字符,\0字符等,所以使用它来存储常量字节数据是最合适的。比如某些文件的文件头是固定的常量,我们需要进行比较,就使用字符数组最合适。
char buf[] = "helloworld";
char buf3_1[] = "\xff\x0e\x00\xae";
unsigned char buf4[] = "\xff\x0e\x00\xae";strncmp(buf,buf3_1,4);
  1. 如果需要存储十六进制字符,可以通过\x开头来表示。

例子

  1. 这里例子说明了sizeofstrlen的使用,并对比了字符数组和常量字符串的计算大小的方式。
#define pKeyValue(a) cout << #a << ": " << a << endl
#define pValue(a) cout << #a << endl
#define exec(a) cout << #a << endl;avoid TestStringArray()
{char buf[] = "helloworld";char buf_1[10] = {'h','e','l','l','o','w','o','r','l','d'};auto buf2 = "helloworld";auto buf3 = "\xff\x0e\x00\xae";char buf3_1[] = "\xff\x0e\x00\xae";unsigned char buf4[] = "\xff\x0e\x00\xae";pValue(========);pKeyValue(strlen(buf));// 数组字符串会在后边存储一个\0结束符pKeyValue(sizeof(buf));// 如果使用预先设定大小的数组,那么sizeof的结果是对的,strlen是未定义行为。// -- 因为数组后边的地址存储的数据不一定是\0结束符。pValue(========);pKeyValue(sizeof(buf_1));pKeyValue(strlen(buf_1));pValue(========);pKeyValue(strlen(buf2));pKeyValue(sizeof(buf2));pKeyValue(strlen(buf3));pValue(========);pKeyValue(strlen(buf3_1));pKeyValue(sizeof(buf3_1));// 有效数据的大小需要减一pKeyValue(sizeof(buf3_1)-1);pValue(========);pKeyValue(sizeof(buf4));}

输出

========
strlen(buf): 10
sizeof(buf): 11
========
sizeof(buf_1): 10
strlen(buf_1): 30
========
strlen(buf2): 10
sizeof(buf2): 4
strlen(buf3): 2
========
strlen(buf3_1): 2
sizeof(buf3_1): 5
sizeof(buf3_1)-1: 4
========
sizeof(buf4): 5

参考

  1. 关于数组的初始化问题

  2. 关于使用0初始化结构体的解析

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

相关文章:

  • 电子商务网站的设计网站开发与服务合同范本
  • 超链接网站怎么做济南网络广播电视台
  • 黑河城乡建设局网站做本地地旅游网站
  • 网页布局的目的英文seo 文章发布类网站
  • wordpress访问多站点腾讯广告卖东西怎么建设网站
  • 东莞高埗网站建设onedrive 做网站静态
  • 品牌网站官网北京知名网站建设公司
  • 有什么网站可以做微信网站后台管理系统怎么做
  • 六安网站设计公司网站的结构怎么做
  • 云阳如何做网站长沙企业网站建设多少钱
  • 舞钢市城市建设局网站创建网页链接
  • 潜江资讯网最新招聘信息湛江市seo网站设计报价
  • 重庆网站制作系统网页代理地址
  • 找个网站懂的网站网页设计 效果图
  • 天津市武清区建设银行网站做环保网站案例
  • 网站搭建文案html个人网页制作模板
  • 国内网站建设代理网站建设服务器主板1150针
  • 企业集团网站建设与运营网络安全建设方案
  • 厦门网站关键词推广公司推广方法有哪些
  • 北京专业做网站的建站套餐
  • 网站建设的技术方案模板下载qq上网站做我女朋友
  • 郑州企业微网站建设电商app排行榜
  • 域名备案查询网站备案保定网站定制公司
  • 专业做logo的网站浙江网站设计公司电话
  • 德庆网站建设公司小程序app制作需要多少钱
  • 做网站在线支付系统多少钱?收费资源下载wordpress主题
  • 游戏前端转网站开发学校网站管理与建设办法
  • 免费行情软件网站下载视频自己做网站平台
  • 人才网站建设策划书市场监督管理局待遇如何
  • 网站文件夹权限百度提升优化