C++ Primer plus 第四章 笔记和答案

一、笔记

1.初始化数组 int oook[4] = {25,32,22,16}; (C++11允许 = 号省略)
(只有在定义数组时才能初始化,其他时候不能初始化,也不能将一个数组赋予给另外一个数组。)

2.strlen()只计算可见的字符。

3.读取一行字符串
cin.getline(name,20) : 丢弃换行符。其中第一个参数用来储存输入行数组的名称,第二个参数是要读取的字符数,如果此参数为20,则函数最多读取19个字符。
cin.get(name,20):不丢弃换行符。

4.String 类
4.1 不能将一个数组赋予另一个数组,但是可以将一个string对象赋予另一个string对象
4.2可以使用运算符 ”+“ ,”+=“。
4.3 以下是两种确定字符串中字符数的方法:
int len1 = str1.size();
int len2 = strlen(charr1);
其中,str1和charr1是数组名
4.4
下面是将一行输入读取到数组的代码:
cin.getling(charr, 20); 【cin是一个istream对象】
下面是将一行输入读取到string对象中的代码:
getline(cin,str);
4.5 cout << R“ /n/b ”,显示/n/b

4.6 在char数组和cstring头文件中,使用cin.getline(name,20)
在string和string头文件中,使用getline(cin.name)

5.结构 struct name
{
char name[20];
float volume;
double price;
};
初始化 name guest = {“Daphe”, 0.12 ,9.98};

6.枚举
enum spe {red, orange, yellow}; 对应0,1,2
spe band;
band = red; 【没有为枚举定义算术运算】

7.指针
7.1int jumbo = 23;
int* pe = &jumbo;

值 23 地址0x2ac8
jumbo &jumbo
*pe pe

【一定要在对指针应用解除引用运算符()之前,将指针初始化为一个确定的、适当的地址】
7.2 int
pon = new int [10];
delete [] pon;
【只能使用delete来释放new分配的内存。】
eg.

#include<iostream>
int main()
{
   
	using namespace std;
	double* p3 = new double[3];
	p3[0] = 1.1;
	p3[1] = 2.2;
	p3[2] = 3.3;
	cout << "p3[1] is " << p3[1] << endl;
	p3 = p3 + 1;
	cout << "p3[0] is " << p3[0] << endl;
	p3 = p3 - 1;
	cout << "p3[2] is " << p3[2] << endl;
	delete[]p3;
	return 0;
}

在这里插入图片描述
8.数组的替代
8.1 vector
#include < vector >

using namesapce std;
vector< typeName >dv(n_elem);
【该声明创建一个名为vt的vector对象,可以储存n_elem个类型为typeName的元素,其中n_elem可以是整形常量也可以是整形变量。】
8.2 array
#include < array >

using namesapce std;
array< typename, n_elem> arr;
【该声明创建一个名为arr的array对象,可以储存n_elem个类型为typeName的元素,其中n_elem是整形常量。】

9.类型组合

#include<iostream>
using namespace std;
//创建结构
struct anta_end
{
   
	int year;
};
int main()
{
   
	//创建变量
	anta_end s01, s02, s03;
	//使用成员运算符访问其成员
	s01.year = 1998;
	//创建指向这种结构的指针
	anta_end* pa = &s02;
	//使用间接运算符来访问成员
	pa->year = 1999;
	//创建结构数组
	anta_end trio[3]; 
	//其中trio是一个数组,trio[0]是一个结构,trio[0].year 是该结构的一个成员
	trio[0].year = 2003;
	cout << trio->year << endl;
	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值