您的位置:首页 > 编程语言 > C语言/C++

C++ primer plus学习笔记(三):复合类型——字符、数组、结构体、枚举、指针

2020-08-04 14:50 483 查看

数组:

声明数组:

typeNmae arrayName[Size];

赋值数组:
typeNmae arrayName[Size]={0,1,2,3}

arrayNmae[0]=1;

只有在数组初始化时才能使用第一种赋值方法,也不能将一个数组直接赋给另一个数组

c++的数组初始化:

c++ char数组存储字符串(String):

句末结束符’\0’,已被隐式包含,故不需再写

计算存储字符串所需的最短数组时,要将结尾的空字符计算在内

凭借字符串常量

第二个字符串的第一个字符将会替换掉第一个字符串的句末结束符

cin输入:
cin使用空白(空格、制表符、换行符)来确定字符串的结束位置(较低级),很多程序都依赖于字符串的输入,故我们必须使用cin的脚高级特性来满足更高级的输入要求

cin.getline(),面向行的输入:
它有两个参数,第一个参数是用来存储输入行的数组名称,第二个参数是要读取的字符数

cin.getline(name,20)

get():

String:
strcpy()将字符串复制到字符数组中
strcat()将字符串附加到字符数组末尾

String输入

结构体:
定义方法同C

共用体:
同C

枚举类型:

enum spectrum {red,orange,yellow,green,blue}



可以使用赋值运算符来显式设置枚举量的值
如:

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

指定值必须为整数,可以只定义部分,值也可以相同
后面没有被初始化的枚举量的值将比其前面的枚举量大1

在我理解,枚举就是声明一个类似于常数数组的空间,里面存放好了预先定义的常数值,使用该枚举空间声明出来的变量的取值也限于其预设常数值范围

指针:

new运算符,分配内存:

int *p=new int;
,在c语言中,可以使用库函数malloc()来分配内存,c++也可以沿用,但new 更加方便:new将找到一个长度合适的内存块,并返回其地址

delete运算符,释放内存:

delete p;
,这将释放ps指向的内存,但不会删除指针ps本身

要配对使用new 和 delete,避免发生内存泄漏(即内存空间持续被占用且无新空间释放)

创建动态数组:

int *p=new int[10];    //申请10个int大小的连续的内存空间,且p指向第0个内存块
delete [] p;   //释放整个数组

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐