第四章 复合类型
字符串
读取一行字符
getline():读取整行,遇到换行符,输入结束。(不保留换行符)
第一个参数:存储输入的数组名称
第二个参数:要读取的字符数
get():读取整行,遇到换行符,输入结束。(保留换行符)
第一个参数:存储输入的数组名称
第二个参数:要读取的字符数
cin.get(nam, Arsize);
cin.get();//读取第一行的换行符
cin.getline(dessert, Arsize);
string类
char charr1, charr2;
string str1, str2, str3;
赋值
strcpy(charr1, charr2);
str1 = str2;
拼接
strcat(charr1, charr2);
str3 = str1+str2;
附加
strcat(charr1, "paste");
str1 += "paste";
结构体
同一结构体可以存储多种类型的数据
声明
struct test
{
char name[20];
double price;
};
定义
test t={"zhangsan", 89.45};
共用体
能够存储不同类型的数据,但只能同时存储其中的一种数据类型。
声明
union one4all
{
int int_val;
long long_val;
double doubel_val;
};
定义和使用
one4all pial;
pial.int_val = 15;
cout << pail.int_val;
pail.double _val = 1.38;
cout << pail.double_val;
枚举
声明
1.显示生命力所有值
enum bits {one = 1, two = 2, four = 4, eight = 8};
2.显示声明一部分值、
enum bigstep {first = 1, second = 100, third};
first默认为0,third为前一个数加1
3.创建多个值相同的枚举
enum {zero, null = 0, one, numero = 1};
指针
1.new 分配内存
int *pn = new int;
2.delete 释放内存
delete pn;
note:一定要配对的使用new和delete,否则将发生内存泄漏(被分配的内存再也无法使用)
3.创建动态数组
int *psome = new int [10];
delete [] psome;//[]:释放整个数组,而不是指针指向的元素
rule:
不要使用delete来释放不是new分配的内存
不要使用delete释放同一内存两次
如果使用new[]为数组分配内存,则应使用delete[]来释放
4.使用动态数组
psome[i]:第i个元素