您好!欢迎来到源码码网

C++ Primer Plus 随记2

  • 行业资讯
  • 来源:源码码网
  • 编辑:admin
  • 时间:2020-05-13 16:12
  • 阅读:485

1.声明数组: short months[12]; 访问其元素:month[0]~month[11]

2.初始化数组:(1)int yam[3]={20, 3, 5}; // 列表初始化可省略等号,也可{}不包含数据,元素均初始化为0

(2)int xam[3]; xam[0]=20; xam[1]=3; xam[2]=5;

xam[3]={20,3,5};//错,不允许 xam=yam; //错,不允许将一个数组赋给另一个数组

long ph[]={25, 92, 3.0}; //错,列表初始化禁止缩窄转化,浮点double 转化为长整型 long 为缩窄转化

3. (1)c=sizeof yam; //结果是整个数组的字节数 c=12;

(2)c=sizeof yam[0]; //结果是元素的字节数 c=4;

(3) sizeof yam/sizeof yam[0] 可以用于计算数组元素个数

4. C++标准模板库(STL)提供了数组替代品——vector ,C++11新增模板类array.

5. 在确定存储字符串所需的最短数组时,别忘了将结尾的空字符计算在内。

6. 'S’是一个字符常量, “S”表示两个字符S和组成的字符串。 “S”实际上表示字符串所在的内存地址。

7. 数组初始化字符串常量: char name1[15]=“C++OwBody”;

sizeof (name1)=15 ; // 整个数组长度

strlen(name1)=9; // 存储在数组中的字符串长度,只计算可见字符,不计算空字符和结束字符;

4. 面向行的输入:一般在输入名字变量时应使用面向下一行输入,读取多个单词

(1) cin.getline(name,20);//name:数组名,20:字符数可以读取一行中不超过字符数的多个单词, Enter生成换行符,并将换行符替换为空字符(1) cin.getline(name,20);//name:数组名,20:字符数可以读取一行中不超过字符数的多个单词, Enter生成换行符,并将换行符替换为空字符

(2)cin.get(name,20) ; cin.get(desetr,20) ; //会读到行尾并保留换行符到输入队列中连续2次调用get(),在第二调用看到的第一个字符时换行符,认为以达到行尾,无法继续读取

正确调用方法:cin.get(name,20).get();

5. 空行或其他问题,用以下命令恢复输入: cin.clear();

6. string 对象声明为简单变量,而不是数组,程序可自动处理string 的大小。利用string,加入头文件 #include

7. (1)char charr1[20]; char charr2[20]=“jagura” ;

charr1=charr2; //此句数组赋值语句不合法

strcpy(charr1,charr2); //将charr2复制到charr1

strcat (charr1,charr2); //将charr2附加到charr1末尾,

int len=strlen(charr1); //确定字符串中字符数 strlen()是函数

(2)string str1; string str2=“pather”; str1=str2; //最后一句合法

string str3; str3=str1+str2; str2+=str1; //合法

int len=str1.size();//确定字符串中字符数 str1是一个string类 的对象,size()是string类的一个方法。

6. char charr[20]; cout<<strlen(charr); //屏幕输出的结果不确定,可能大于20,或小于20,。为初始化的数组未定义。strlen()从数组第一个元素开始计算字符字数,直到遇到空字符。对为初始化的数组,第一个空字符出现的位置是随机的。

string str; cout<<str.size(); //屏幕输出结果为0.初始化的string对象长度自动设置为0;

7. 将下一行输入读取到数组中的代码: cin.getline(charr1,20); //这句表明cin是istream类的对象,getline()是istream类的方法

将下一行输入读取到string对象中的代码:getline(cin.str); //这句表明getline()不是类方法,在istrea类中有处理double,int

//等其他基本类型的类方法,但没有处理string对象的类方法

cin>>str; //合法,应用了istream类的一个成员函数cin>>x

10. 结构声明初始化:#include

struct inflatable{ char name[20], float volume, double price};

struct inflatable{ std::string name, float volume, double price}; //结构可以将string类作为成员,但要指明访问的名称空间

inflatable duck={“Daphe”, 0.12, 9.98};

inflatable Bobu; Bobu=duck; //结构赋值是有效的

struct peak{ int number, char car[20]} Ala, bay; // Ala, bay是结构peak的两个结构变量。

初始化结构数组: inflatable guest [2]={ {“Daphe”, 0.12, 9.98}, {“Bobu”, 0.34, 6.34} };

11. 共用体:可以储存不同数据类型,但具体某一时刻只能储存一种类型。

12. 枚举: enum spectrum { red, orange, yellow, green, blue, violet, indigo, ultraviolet }; //符号常量,对应的整数值为0~7

spectrum band; //band只能从枚举spectrum定义的8个常量里选择值

设置枚举量的值:指定的值必须为整数

enum bits{one=1 ,two=2, four=4, eight=8 };

enum bitstep{ first, second=100, third }; //first默认为0,后面未初始化的枚举量比前面大1,third =101

enum {zero, null=0, one, nuero=1}; //可以创建多个相同值的枚举量

枚举的取值范围: bits myflag; myflag=bits(126); //合法,上限为最大值的2的幂-1,2^8-1=127

————————————————


原文链接:https://blog.csdn.net/lvliang2017232003/java/article/details/85332232


特别声明:
1、如无特殊说明,内容均为本站原创发布,转载请注明出处;
2、部分转载文章已注明出处,转载目的为学习和交流,如有侵犯,请联系客服删除;
3、编辑非《源码码网》的文章均由用户编辑发布,不代表本站立场,如涉及侵犯,请联系删除;
全部评论(0)
推荐阅读
  • 陀螺匠OA办公系统源码 PHP + Vue 前后端分离 完整可商用
  • 陀螺匠OA办公系统源码 PHP + Vue 前后端分离 完整可商用
  • 项目介绍《陀螺匠》是一套采用Laravel9框架结合Swoole高性能框架与Vue.js前端技术栈构建的AI+低代码双引擎智能办公系统。陀螺匠深度融合了AI智能体以及低代码开发平台,系统简约,易于功能扩展,方便二次开发。旨在为企业提供一站式、数智化转型的全方位解决方案,助力企业高效运营与智能决策。源码说明源码说明:项目代码100%开源,基于AGPL-3.0,支持免费商用!技术栈:系统基于Laravel9+Swoole+Vue.
  • 软件教程
  • 来源:CRMEB
  • 编辑:CRMEB
  • 时间:2026-03-27 15:33
  • 阅读:397
  • open claw最近很火,如何理性看待?
  • open claw最近很火,如何理性看待?
  • openclaw是2026年初科技圈最火爆的现象级话题。它不仅仅是又一个AI产品,更被百川智能的王小川誉为与ChatGPT诞生同等重要的里程碑——标志着AI从”只会说”的对话者,进化到了”能够做”的行动者。对于这股全民”养虾”热潮,我的观察是:它代表了一次人机关系的革命性跃迁,但同时也是一场充满风险与泡沫的狂欢,其真正的价值需要在喧嚣褪去、安全与成本的挑战被克服后才能显现。下
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-03-17 11:06
  • 阅读:437
  • 原生小程序和封装的小程序有什么区别
  • 原生小程序和封装的小程序有什么区别
  • 原生小程序和封装的小程序是两种不同的开发模式,主要区别在于开发方式、性能表现、代码维护以及跨平台能力。为了让你更清晰地理解,我们可以把“原生”比作用钢筋水泥直接盖楼,而“封装”则是用预制板或套件来组装楼。以下是详细的对比分析:1.定义与本质原生小程序:定义: 直接使用微信官方提供的开发工具、语法和API进行开发。语言: 使用微信自己定义的一套技术栈(WXML(微信标记语言)做结构、WXSS(微信样式表)做样式、JS
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-03-06 11:54
  • 阅读:671
  • 基于NetCore(Razor Page)开发的Cms建站系统MIT协议
  • 基于NetCore(Razor Page)开发的Cms建站系统MIT协议
  • FytSoaCms一款基于NetCore2.2/3.1(RazorPage)功能强大的Cms建站系统,支持前后端分离。简介:模块化:全新的架构和模块化的开发机制,便于灵活扩展和二次开发。模型/栏目/分类信息体系:通过栏目和模型绑定,以及不同的模型类型,不同栏目可以实现差异化的功能,轻松实现诸如资讯、下载、讨论和图片等功能。通过分类信息和栏目绑定,可以自动建立索引表,轻松实现复杂的信息检索。FytSoa是一套基于NetCore+SqlS
  • 开发工具
  • 来源:gitee
  • 编辑:源码码网
  • 时间:2026-01-24 22:21
  • 阅读:599
  • 基于JAVA开发的企业级平台微信公众号管理系统SmartWx
  • 基于JAVA开发的企业级平台微信公众号管理系统SmartWx
  • SmartWx微信公众号管理系统是一个完整的微信公众号web操作版,直接编译即可运行。让用户不再用关心微信的底层接口,直接使用页面进行操作,简单方便。包括服务器绑定、文本管理、图文管理、菜单管理、粉丝管理、群发消息等。技术框架开发语言:JAVA数据库:MYSQLJAVA开发框架:SpringMVC+Spring+Mybatis缓存框架:j2cache前端开发框架:Layui+JQuery+html前台模板引擎:art-templat
  • 源码教程
  • 来源:gitee
  • 编辑:源码码网
  • 时间:2026-01-24 21:53
  • 阅读:608
联系客服
源码代售 源码咨询 技术开发 联系客服
029-84538663
手机版

扫一扫进手机版
返回顶部