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

建设工程材料网站三水建设局网站

建设工程材料网站,三水建设局网站,外贸怎么用网站开发新客户,网站建设 推广就选网沃科技前言 本期我们讨论字符串字面量。 这是一种基于字符串的东西#xff0c;上一章我们讲过字符串#xff0c;你一定要去先去看看那一期的内容。 P23 C字符串-CSDN博客 01 什么是字符串字常量呢#xff1f; 字符串字面量就是在双引号之间的一串字符 在上面的代码中#xf… 前言 本期我们讨论字符串字面量。 这是一种基于字符串的东西上一章我们讲过字符串你一定要去先去看看那一期的内容。 P23 C字符串-CSDN博客 01 什么是字符串字常量呢 字符串字面量就是在双引号之间的一串字符 在上面的代码中我们通过双引号定义了一个字符串字常量。 当指针悬停在“hello world0” 时会弹出下面语句 (const char [12])hello world你可以看到这是一个 const char 数组长度为12。 可是这里很明显只有11个字符那为什么 const char 数组的长度是12呢 原因是在这种情况下在字符串的最后有一个额外的字符一个空终止字符它的 ASCII 码值为 0可以写做 ‘\0’是null字符的意思表示字符串的结束。注意这和字符0完全不一样。 如果我们想在这个字符串中间插入一个 \0这样操作会破坏这个字符串的行为让我们设置个断点查看下内存 我在第五行设置了一个断点当程序运行到第六行的时候我们可以看到左边红框data hello 这是为什么呢 我们可以看到在 hello 和 world 的后面各有一个点在 ACSII 中点表示 0。它在最后标记字符串的结尾标记字符串的结尾。 如果我想看到我的字符串是什么我可以运行 C 函数 strlen计算一下这个字符串的长度看看结果。 结果是5可是明明字符串的长度不是5啊得到这个结果的原因是它只计算直到 \0 之前的字符数。因为一旦它到0它就认为是结束了这就是字符串的结尾了。 这就是它现在的样子是一个 const char* 。 我们也可以把它赋值给另一个 const char* 这完全没问题。 const 保证了你不会操纵字符串。当然如果不写 const你是可以修改其中的字符的不过我不建议你这样做这可能会导致所谓的未定义行为因为 C 标准并没有定义在这种情况下应该发生什么因此一些编译器可能会为此生成有效的代码但是你不能依赖它所以还是不要这样操作了一些编译器甚至不会让你通过编译。 未定义是不被允许的原因是你取了一个指向那个字符串的字面量的内存位置的指针而字符串字面量是存储在内存的只读部分的它是存储在二进制文件的 const 部分。当我们引用它的时候实际上指的是一个我们不能编辑的常量区域。 测试的代码 #include iostream #include string.h int main() {const char * data hello\0 world;std::cout strlen(data) std::endl;std::cout data std::endl;return 0; } 02 其他一些关于字符串的有趣的常识。 有一种叫做 wchar_t 的字符也是就是所谓的宽字符。 现在快速的过一遍这些类型。 注意如果不加那个 L是不能通过编译的。 会报下面的错误const char * 类型的值不能用于初始化 const wchar_t * 类型的实体C/C(144) 上面的例子表示引号里的字符串字面值由宽字符组成。 C 还引入了一些其它的字符比如 char16_t你需要设置为小写 u然后是双引号包含你的文本。还有 char32_t这里是大写的 U加上你的文本。 如果为了强调你也可以将普通的 const char 前面加上 u8 前缀。有一些编译器设置可以控制是使用 char 还是使用 wchar。 做一个简单的总结char 是一个字节的字符也就是utf8char16 是两个字节的16个比特的字符也就是utf16char32 是32比特4字节的字符也就是utf32。 2.1  wchar 和 char16 之间的区别是什么 因为它们似乎都是两个字节的字符。 虽然我一直在说一个字符是两个字节实际情况是这是由编译器决定的它可能是一个字节也可能是两个字节也可能是四个字节在实际应用中好像还没有见过是一个字节的通常不是2个就是4个在 windows 上是2个字节在 linux上是4个字节mac 上也是四个字节。所以这其实是一个变动的值如果你确实要的是2个字节的你就用 char16吧。 2.2 字符串附加。 在 C14 中有个 std::string_literals它给出了一些方便的字符串函数。 如果你想在这个上面附加一些其它的字符串你不能直接使用加号拼接一个字符串。因为这些都是字符串字面量它们实际上是数组或者指针所以不能将它们相加。在 C14 的 string_literals 库中有办法可以让事情变得更加简单一些。 你可以直接把字母 s 加到字符串的末尾就像下面的例子一样。 如果你把鼠标悬浮在上面可以看到它是一个操作符函数返回标准字符串对象类似的你把 u8 放在前面把 L 放在前面可以得到对应的字符串都是一样的道理。 我们还可以通过另外一种方法来附加字符串字面量使用字母 R。 R 表示可以忽略转义字符这样操作可以让这个过程变的简单了一些因为如果没有它要完成同的效果我们需要把所有的这些东西都加在一起或者我们也可以这样直接加上 \n。 这种做法还是比较常见的如果你想写一段完整的文本或者代码中的某个字符串你想简单的定义它的话就比较复杂了所以 R 还是很有用的。 好了以上就是字符串字常量。 #include iostream #include string.h int main() {using namespace std::string_literals;const char * data hello\0 world;const wchar_t * data1 Lhello world;const char16_t * data2 uhello world;const char32_t * data3 Uhello world;std::string buf hellos world;const char * buf2 R(hello world i am chenpi );const char * buf3 hello\nworld;std::cout buf3 std::endl;return 0; }
http://www.yutouwan.com/news/139771/

相关文章:

  • win10 中国建设银行网站网站pv统计方法
  • 珠海网站免费制作数字营销策略有哪些
  • 衡水电子网站建设做的好的茶叶网站有哪些
  • 扁平化网站设计教程昆明软件开发公司推荐
  • 网站注册都需要什么品牌策划公司收费
  • vps 建网站 代理安徽省住房城乡建设厅网站官网
  • 做微网站用什么框架教育网站制作公司
  • 网站怎么推广出去比较好婴儿用品网站模板
  • 做网站流量要钱吗站内营销推广方式
  • 郑州旅游网站搭建外贸专业网站制作
  • 做网站维护有没有前途创新的中山网站建设
  • 直接用ip访问网站要备案吗做网站国外网站
  • 机票网站建设公司做生存曲线的网站
  • 网站怎么提高收录微信模板怎么制作
  • 如何做新闻自动采集网站网站先做前端还是后端
  • 怎么测网站流量吗wordpress 删除 后台菜单
  • 哪个网站可以做面料订单东莞智通人才网
  • 做网站运营的股票购物网站排行
  • WordPress建站 用插件怀化网络推广哪家服务好
  • 视频网站设计oa软件排行
  • 高端网站设计公司排名企业网站的建设专业服务
  • 昆明官渡区网站建设网页设计基础读书笔记
  • jsp网站建设教程网站制作的流程
  • 网站建设需要的资质个人备案的公司网站
  • html社交网站模板域名网站教程
  • 微信公众号搭建网站怎么做企业网站优化需要多少钱
  • 点击图片进入网站要怎么做网页制作工具哪个好用
  • 专业网站设计第三方网站群建设公司排行榜
  • 如何在网站中做二级下拉菜单wordpress淘客api
  • 临沂做商城网站设计wordpress gif 点击播放