//结构体
struct inf //inf声明结构体是可以省略
{
char name[20];
float volume;
double price;
}
//结构体数组初始化
inf guest[2]=
{
{"bb",0.5,21.99},
{"ddsa",2000,20}
};
// 共用体是一种数据格式,他能够存储不同的数据类型,但是只能同时存储 其中一种类型
union one4all //one4all可以省略
{
int int_val;
long long_val;
double double_val;
};
//枚举
enum specyrum {
red,orange,yellow,green,blue,violet,indigo,ultraviolet
};
//specyrum被称为枚举,将red orange yellow 等作为符号常量,它们对应整数值0~7,只有这8个值
//可以用枚举名来申明这类变量
specyrum band;
band =blue ;
//枚举类型是整型,可被提升为int类型,但是int类型不能自动转化为枚举类型
int color=blue;//强制转化成了int类型
band=3;//不能使用
color = 3 + red; //将red转化为int类型
//如果int值有效的,可以强制类型转换,将它赋给枚举变量
band = specyrum(3);
//对于枚举来说只有,只有声明中指出的那些值是有效的,C++现在通过强制类型转换,增加了可赋值给枚举变量的合法值
enum bits{
one =1;two =2,four =4; eight =8
} ;
bits myflag;
my flag =bits(6);//这是合法的
//指针用于存储值的地址,因此,指针名表示的就是地址。*运算符被称为间接值或解除引用运算符,将其运用于指针,就可以得到该地址处存储的值
//声明一个指针
int * p_update; //int类型的指针,指向int的指针
int * pn=new int;//声明指针,同时分配内存
//或者
int higgens;
int * pt = &higgens;
//为一个数据对象(可以是结构,也可以是基本数据类型)获得并指定分配内存的通用格式如下:
typename *pointer_name =new typename;
delete pointer_name;
//新建动态数组
int * psome =new int [10];
delete [] psome;
//使用new和delete ,应该遵循的规则
//不要使用delete 释放不是new分配的内存
//不要使用delete释放同一个内存块两次
// 如果使用new[]来为数组分配内存,则使用delete []来释放
//如果使用new []为一个实体分配内存,则应使用delete (没有方括号)来释放
//对空指针应用delete是安全的
struct inf //inf声明结构体是可以省略
{
char name[20];
float volume;
double price;
}
//结构体数组初始化
inf guest[2]=
{
{"bb",0.5,21.99},
{"ddsa",2000,20}
};
// 共用体是一种数据格式,他能够存储不同的数据类型,但是只能同时存储 其中一种类型
union one4all //one4all可以省略
{
int int_val;
long long_val;
double double_val;
};
//枚举
enum specyrum {
red,orange,yellow,green,blue,violet,indigo,ultraviolet
};
//specyrum被称为枚举,将red orange yellow 等作为符号常量,它们对应整数值0~7,只有这8个值
//可以用枚举名来申明这类变量
specyrum band;
band =blue ;
//枚举类型是整型,可被提升为int类型,但是int类型不能自动转化为枚举类型
int color=blue;//强制转化成了int类型
band=3;//不能使用
color = 3 + red; //将red转化为int类型
//如果int值有效的,可以强制类型转换,将它赋给枚举变量
band = specyrum(3);
//对于枚举来说只有,只有声明中指出的那些值是有效的,C++现在通过强制类型转换,增加了可赋值给枚举变量的合法值
enum bits{
one =1;two =2,four =4; eight =8
} ;
bits myflag;
my flag =bits(6);//这是合法的
//指针用于存储值的地址,因此,指针名表示的就是地址。*运算符被称为间接值或解除引用运算符,将其运用于指针,就可以得到该地址处存储的值
//声明一个指针
int * p_update; //int类型的指针,指向int的指针
int * pn=new int;//声明指针,同时分配内存
//或者
int higgens;
int * pt = &higgens;
//为一个数据对象(可以是结构,也可以是基本数据类型)获得并指定分配内存的通用格式如下:
typename *pointer_name =new typename;
delete pointer_name;
//新建动态数组
int * psome =new int [10];
delete [] psome;
//使用new和delete ,应该遵循的规则
//不要使用delete 释放不是new分配的内存
//不要使用delete释放同一个内存块两次
// 如果使用new[]来为数组分配内存,则使用delete []来释放
//如果使用new []为一个实体分配内存,则应使用delete (没有方括号)来释放
//对空指针应用delete是安全的