复合类型:string, 数组, 结构体, 指针及自由储存空间
- 数组:
short nums[10] {3,2,5,6};
char str[] = “Bubbles”; // 记得加上结尾的空字符 - 字符串
输入: cin.getline() // 读取一行
cin.get() // 读取一行但是丢弃换行符, 并把换行符留在队列里, 下一次cin.get()直接读取换行符
string str1 = “Bubbles”;
string对象可以赋给另外一个,数组不可以,数组使用 strcpy(char2, char1)来把1赋给2
strcat(),将字符串附加到字符数组末尾,针对char数组,string类直接+=
cin,cout可以用于string类的io - struct结构体
struct kk
{
int type;
char name[20];
float volumn;
union // 共用体
{
long id_num;
char id_char[20];
};
};
kk prize;
if (prize.type == 1)
cin >> prize.id_num;
else
cin >> prize.id_char; - 指针及自由储存空间
a) 指针是一个变量,储存的是值的地址
int p_updates;
p_updates = &updates;
则p_updates和updates等价
指针声明必须指定其指向的数据类型
b) 使用new分配内存, 使用delete释放内存
int *ps = new int;
int *pt = new char [20]; // 动态数组
delete ps; // 只会释放掉new的int内存,不会删除指针, delete与new配对
delete [] pt;
使用指针来访问数组:
使用pt[0]来访问数组中第一个元素, 而不是*pt
使用new和直接声明的区别:
直接声明是静态联编, 在编译时分配内存; 使用new是创建动态数组, 动态联编, 在运行时分配内存