c++的准备知识17

1.C++11数组初始化方法。初始化数组时,可以省略等号:
  double earnings『4』 {1.2e4,1.6e4,1.1e4,1.5e4};
  其次,可以在大括号内包含任何东西,这将把所有元素都设置为零。
  unsigned int counts 『10』 = {};
  float balances『100』 {};
  第三,列表初始化禁止缩窄转换,
  long plifs 『』= {15,54,7};
  char slifs【4】 {"h","i",1122311,"\0"};
  char tlifs [4]  {"h""i",122"\0"};
  在上述代码中,第一条语句不能通过编译,因为将浮点数转换成整数时缩窄操作,及浮点数的小数点后面为零。
  第二条语句也不能通过编译,因为1122311超出了char 变量的取值范围。第三条可以通过编译,虽然112是一
  个int值但它在char变量的取值范围内。
  C++标准模板库提供了一种数组代替品——模板类vector,而C++11新增了模板类array。这些替代品比内置符合
  类型数组更复杂,更灵活。

2.字符串
  字符串是存储字内存的连续字节中的一系列字符,C++处理字符的方式有两种。第一种来自C语言,常被称为C-风
  格字符串。
  存储在连续字节中的一系列字符意味着可以将字符串存储在char数组中,其中每个字符都位于自己的数组元素中,
  字符串提供了一种存储文本信息的边界方式,如提供给用户的消息或来自用户的相应。C-风格字符串具有一种特
  殊性质:以空字符结尾。空字符被写作\0,其ASCII码为0,用来标记字符串的结尾,例如
  char dog [8] = {"b","e","a","u","x"," ","I","I",};
  char cat [8] = {"f","a","t","e","s","s","a""\0",};
  这两个数组都是char数组,但只有第二个数组是字符串。空字符对C-风格字符串而言至关重要。例如,C++有很多
  处理字符串的函数,其中包括cout使用的那些函数,他们都逐个的处理字符串中的字符,知道达到空格字符为止。
  如果使用cout显示上面的cat这样的字符串。则将显示前七个字符,发现空字符后停止。但是如果使用cout显示上
  面的dog数组,cout将打印出数组中的8个字母,并接着将内存中随后的各个字节解释为要答应的字符,知道遇到
  空字符为止,由于空字符在内存中很常见,因此,这一过程将很快停止。尽管如此,还是不应将不是字符串的字符
  数组当作字符串来处理。

3.在cat数组实例中将数组初始化为字符串的工作看上去冗长乏味--使用大量单引号,且必须集中加上空字符。但是有
  一种更好的,将字符数组初始化为字符串的方法--只需要使用一个引号括起的字符串即可,这种字符串被称为字符
  串常或字符串字面值,如;
  char bird【11】 = "Mr . cheeps ";
  char fish 【】 = “Bubbles”;
  用引号括起的字符串隐式的包括结尾的空字符,因此不用显式的包括他。
  C++输入工具通过键盘输入,将字符串读入到char 数组中时,将自动加上结尾的空字符。
  当然,应确保数组足够大,能够存储字符串中所有字符--包括空字符,使用字符串常量初始化字符数组是这样的一种
  情况,及让编译器计算元素数目更为安全,让数组比字符串长没有什么害处,只是会浪费一些空间而已。这是因为处理
  字符串的函数根据空字符的位置,而不是数组长度来进行处理。C++对字符串长度没有限制。
  不过在确定存储字符串所需的最短数组时,别忘了将结尾的空字符计算在内。
  注意,字符串常量不能与字符常量呼唤,字符常量是字符串编码的简写表示。在ASCII系统上,S只是83的另一种写法,
  因此下面的语句将83赋给shirt_size:
  char shirt_size = "S";
  但“S”不是字符常量,他表示的是两个字符组成的字符串,实际上S表示的是字符串所在地内存地址。因此下面的语句
  将试图将一个内存地址赋给shirt_size:
  char shirt_size = "S";
  由于地址在C++中山一种独立的类型,因此C++编译器不循序这种不合理的做法。

时间: 2024-10-14 10:26:50

c++的准备知识17的相关文章

React JS 基础知识17条

1. 基础实例 <!DOCTYPE html> <html> <head> <script src="../build/react.js"></script> <script src="../build/react-dom.js"></script> <script src="../build/browser.min.js"></script&g

有关数据结构的知识17.5.1清北

1 #include<cstdio> 2 #include<cstdlib> 3 #include<cstring> 4 #include<queue> 5 #include<stack> 6 #include<map> 7 //#include<unordered_map> 8 9 using namespace std; 10 11 **********重载运算符************* 12 struct rec

[转]驾校不教的知识(17) 怎么样预防追尾事故

[汽车之家 用车指南]  追尾事故,是一种比较常见的交通事故,但其危害性却很大,轻则导致车辆受损,重则会造成群死群伤的惨祸.前段时间刚发生的造成36人死亡的陕西延安特大交通事故就是由追尾引起的.今天,编辑就和大家来聊聊,在日常驾驶中有哪些需要特别注意的地方能预防追尾事故的发生. ● 如何防止自己追别人的尾 1.不跟出租车 不跟出租车,特别是空载出租车!不少出租车师傅为了生计,看到路边有招手的乘客会立马踩刹车变道,如果正好紧跟在它后面,很容易追尾撞上去. 此外,由于不少乘客对道路不熟悉,上车后会要

2017-12-16Linux基础知识(17)egrep扩展正则表达式

回顾一下上一章所讲的内容,在上一章当中我们讲述了文本处理工具grep命令,它是由用户根据指定的"模式"来进行行匹配,默认为贪婪模式,讲匹配到的结果进行打印到标准输出中来,而正则表达式是由一群特殊的字符所编写的,其中有一些字符并不代表原有的字面意义,而是用于控制或通配的功能,而正则表达式共分类两类,一类是基本正则表达式,另一类是扩展正则表达式,二者区别就是它们的元字符有所不同,而元字符就是用来匹配和控制的功能,那么在这一章当中我们讲述egrep及扩展正则表达式命令. 一.egrep命令

第17章 文本和字体_17.1-17.2 简单文本输出、 字体的背景知识

17.1 简单文本输出 17.1.1 文本输出函数 (1)TextOut(hdc,xStart,yStart,pString,iCount) ①xStart和yStart使用的是逻辑坐标,TextOut并不以NULL来做字符串的结束,需指定字符的个数iCount的值 ②SetTextAlign会改变xStart和yStart的含义 SetTextAlign 坐标值的含义 TA_LEFT xStart:第一个字符的左侧坐标 TA_RIGHT xStart:最后一个字符的右侧坐标 TA_CENTER

《HTTP协议:菜鸟入门系列》

很多测试人员在有了一定的测试经验(一般是1-2年)后,就会陷入瓶颈阶段,想提升,但不知道如何提升,学习又没有比较明确的方向,曾经我也是... 那么,我建议系统的学习一下HTTP协议,好处很多:对接口测试.性能测试.自动化测试甚至前端学习,都有一定的帮助(隐性的作用更大)... 相关的书籍呢,推荐如下几本书: 入门级:<图解HTTP> 进阶级:<图解TCPIP> 深入了解级:<HTTP权威指南> 为了方便我自己以及各位阅读搜索我的笔记,下面将我个人学习HTTP协议及相关内

AnimeGAN输出日志

D:\MyFiles\LearnFiles\Code\Python\AnimeGAN\AnimeGAN>python main.py --phase train --dataset Hayao --epoch 1 --init_epoch 1D:\Users\feng_\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\framework\dtypes.py:516: FutureWarning:

知识文库 17年第16期

本期介绍: 在我国信息化.数字化时代的今天,各种高科技的电子产品已经成为人们所追求的时尚和流行,而且这种网络化的.快餐式阅读方式已经进入现代人的生活,而且在快节奏的生活旋律中也得到了大家的认可. 杂志介绍: <知识文库>杂志是经国家新闻出版总署批准,由哈尔滨日报报业集团主管主办的省级社科综合类期刊.本刊国际刊号:IN 1002-2708,国内刊号:CN 23-1111/Z,邮发代号:14-145. 下载链接: 知识文库 17年第16期.pdf

SCOM 2012知识分享-17:创建并管理组

适应平台:System Center 2012 RTM/SP1 ------------------------------------------------------------------------------------------------------ 在 System Center 2012 – Operations Manager 中,组是基于 Windows 的计算机.硬盘或 Microsoft SQL Server 实例等对象的逻辑集合. 可以使用创建组向导来创建组. 可