动态分配
根据程序的需要适时分配,且分配的大小就是程序分配的大小。
int *p,*q;
char *a,*b;
//给变量分配空间
p=new int;//分配一个整型空间
q=new int(1); //分配一个整型空间,而且将q赋初值为10
//给数组分配空间
a=new char[10];//给数组分配空间
b=new char[10][10];//分配二维数组空间
//释放空间。当分配空间后,必须释放空间
delete p;//释放p指向的空间
delete[] a; //释放a指向的空间
共用体:
成员共享的存储的结构体类型
一般形式:
union 共用体类型吗名{
成员列表
};
定义共用体对象:
//先声明共用体类型再定义共用体对象
union 共用体类型名,共用体对象名列表;
//同时声明共用体类型和定义共用体对象
union 共用体类型名{成员列表} 共用体对象名列表;
//定义共用体对象
union {成员列表} 共用体对象列表;
特点:
1.修改一个成员会使其他成员发生改变
2.所有成员值是相同的,区别是不同类型决定使用这个值的全部或部分
3.所有成员起始地址相同
枚举:
形式:
enum 枚举类型 {命名枚举常量列表};
定义枚举对象:
enum 枚举类型名 { 命名枚举量列表} 枚举对象列表;
enum 枚举类型名 枚举对象名列表;
enum { 命名枚举量列表} 枚举对象名列表;
赋值:
enum colors color;
color=1;//错误
color=(colors)1;//正确
一个小例子:
#include<iostream>
using namespace std;
enum week{Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday};//将情况存在week里
int main()
{
week weekday;//声明变量时可不写enum
enum week x=Sunday;
for(int i=Monday;i<=Sunday;i++)
{
weekday=week(i);
if(weekday==x||weekday==Saturday)
{
cout<<i<<"---relaxing"<<endl;
}
else cout<<i<<"---working"<<endl;
}
return 0;
}