C++ Primer Plus 学习笔记 第四章 01

声明:本文整理自《C++ Primer Plus》

01 数组
int yam[3];
sizeof yams,得到整个数组中的字节数,12
sizeof yams[1],得到的是元素的长度,4 bytes

02 字符串 
将字符数组初始化为字符串的方法:用双引号将字符串括起来。(称为字符串常量)
char bird[11]="C++C++";//隐式的包含结尾空字符
通过键盘输入,将字符串读入到char数组时,自动加上结尾的空字符。

“S”不是字符常量,它表示两个字符(S和\0),"S"是字符串所在的内存地址

sizeof运算符指出整个数组的长度,strlen()返回的是存储在数组中的字符串的长度,不是数组本身的长度。strlen只计算可见的字符,不包括空字符。

03 字符串输入
cin使用空白(空格、制表符和换行符)来确定字符串的结束位置,cin在获取字符数组时只读取一个单词。

  • 面向行的输入getline()
通过回车键输入的换行符来确定输入结尾。但不保存换行符,而是用空字符来替换换行符。
cin.getline(name,20);
第一个参数是数组的名字,第二个参数是要读取的字符数。20代表最多读取19个字符,剩下的用于存储自动添加的空字符。
  • 面向行的输入get()
get与getline类似,但是不读取并丢弃换行符,而是将其留在队列中。
使用不带任何参数的cin.get()调用读取下一个字符,还可拼接cin.get(name,20).get();
使用get()时检查停止读取的原因,查看下一个字符,若为换行符,则说明读取了整行。
  • 读取空行时,使用cin.clear();恢复输入。
  • 混合输入字符串和数字
cin读取数字时,将回车键生成的换行符留在了队列中,再使用cin.getline(),将会认为是空行,使用cin.get()解决。

04 string类
string对象可以声明为简单变量,而不是数组。
程序能够自动处理string的大小。
string str1;
cin>>str1;
str1创建一个长度为0的string对象,但读取输入之后,将自动调整str1的长度。

可以将一个string对象赋给另一个string对象 。可以使用+将两个string对象合并起来,使用+=将字符串附加到string对象的末尾。

函数size()返回字符串包含的字符数。int len=str1.size()

char number[20];
int a=strlen(number);//a 为27
函数strlen从数组的第一个元素开始计算字节数,直到遇到空字符,未初始化的数据,第一个空字符出现位置是随机的,所以长度与数组长度不一致。

原始字符串。在原始字符串中,字符表示它本身,用"(和)"作界定符,使用前缀R来标记。


05 结构
同一个结构可以存储多种类型的数据。
创建一个结构

inflatable结构有三个成员。
inflatable hat;//创建一个inflatable类型的变量
C++允许在声明结构变量时省略关键字struct。

变量初始化,用逗号隔开


可以将结构赋给另一个同类型的结构。
同时定义结构和创建结构变量。


结构数组。
inflatable gifts[100];
每一个数组的元素都是一个inflatable类型的结构变量,但gifts是一个数组。

06 共用体
能够存储不同的数据类型,但只能同时存储其中的一种类型。共用体的长度为其最大成员长度。

07 枚举

spectrum被称为枚举,大括号里的被称为枚举量。
spectrum bank;
bank = red;

设置枚举量的值,使用=

first默认为0,没有被初始化的枚举量的值将比前面的枚举量大1,third=101.
枚举量的值可以相同。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值