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; //释放整个数组
相关文章推荐
- C++的数组、结构体、指针三种复合类型知识点小总结
- C++:sizeof() —— 变量、指针、数组、类、结构体、联合体(共用体)、枚举类型
- Android For JNI(五)——C语言多级指针,结构体,联合体,枚举,自定义类型
- Swift - 复杂数据类型说明(数组,字典,结构体,枚举)
- C#初级篇---类型转换、枚举、结构体、数组、函数、
- 一维数组,二维数组,三维数组,数组与指针,结构体数组,通过改变指针类型改变访问数组的方式
- 黑马程序员_C语言基础_构造类型(数组,结构体,枚举)
- c/c++ 字符数组、字符指针和字符串类型总结帖
- C++ 二级指针、函数指针与数组复合类型的问题分析
- 关于C中字符数组,字符指针以及C++中string类型的两两转换及排序
- java 调用dll的 指针类型结构体及指针数组类型
- C++学习笔记之八 复合类型---指针、数组和指针运算
- C语言03_构造类型 数组, 结构体, 共用体, 枚举类型介绍
- 指针数组和字符类型的二维数组在处理字符串时的区别
- 使用python向C语言的链接库传递数组、结构体、指针类型的数据
- 复合数据类型,结构体,联合,枚举
- [Go] 复合类型(数组、切片、字典、结构体)变量的 初始化 及 注意事项
- c/c++ 字符数组、字符指针和字符串类型
- 数组与字符串、字符指针与其他类型指针、赋值参数、指针参数以及引用参数、函数指针
- Go起步:5、复合类型2--指针(pointer)、结构体(struct)