20150430
枚举类型如果没有赋值,有默认的整数值,依次是0,1,2,3.。。
如:weekday::mon的值是0
我们可以自己定义一个值。
enum weekday
{
mon=1,
tue,
wed,
thu,
fri,
sat,
sun=0
};
因为weekday::sun特殊性,将其指定为0
枚举类型变量的赋值
weekday nday
nday=weekday::sun;
//尝试用其他的数值对枚举类型变量赋值会产生编译错误
nday=7;
weekday::mon=(weekday)0;//尝试改变枚举元素的值,导致编译错误
复杂的事物用结构体类型来描述
结构体就是将描述单个属性的基本数据类型组合起来描述更加复杂的事物,形成新的构造型数据类型。
结构体的语法格式
struct 结构体名
{
数据类型1 成员名1;
数据类型2 成员名2;
..
数据类型n 成员名n;
};
在结构体的内部,分别使用多个不同数据类型的变量表示复杂事物的各个属性。
struct Human
{
string m_strName; //姓名
bool m_bMale; //性别
int m_nAge: //年龄
int m_nHeight; //身高
float m_fWeight; //体重
};
引用结构体成员变量的语法格式:
结构体变量.成员变量
使用“”运算符
结构体变量表示使用结构体定义的变量。
通过对结构体成员变量的引用,可以读取或设定一个结构体的各个成员变量的数值,从而完成对复杂事物的描述。
chenliangqiao.m_strName="ChenLiangQiao";
chenliangqiao.m_bMale=true;
int nAge=chenliangqiao.m_nAge;
struct Emplyee
{
string m_strName;
bool m_bMale;
int m_nAge;
int m_nSalary;
};
const int MAX_COUNT=1000;
int _tmain(int argc,_TCHAR* argv[])
{
Emplyee arrEmplyee[MAX_COUNT];
cout<<"请输入员工信息"<<endl;
int ncount=0;
do
//将用户输入的数据保存到结构体变量的各个成员变量
cin.clear();
cin>>arrEmplyee[ncount].m_strNmae
>>arrEmplyee[ncount].m_bMale
>>arrEmplyee[ncount].m_nAge
>>arrEmplyee[ncount].m_nSalary;
if("end"==arrEmplyee[ncount].m_strName)
break;
++ncount;
}while (ncount <MAX_COUNT);
cout<<"员工信息:\n姓名\t性别\t年龄\t工资"<<endl;
for(int i=0;i<ncount;++i)
{
cout <<arrEmplyee[i].m_strName<<"\t"
<<arrEmplyee[i].m_bMale<<"\t"
<<arrEmplyee[i].m_nAge<<"\t"
<<arrEmplyee[i].m_nSalary<<endl;
}
return 0;
}
\t输入格式横向跳格
指针
通过指针直接访问数据量所在的内存,可以起到四两拨千斤的效果。
当访问数据量比较大的时候,使用指针
指针使用不当,很糟糕
指针就是表示内存地址的数据类型
使用了指针,程序就可以通过指针直接操作内存。
两种访问内存的方式:
1、通过变量名简介访问在内存存放的数据,进行读取或者写入
2、第二种方式是直接通过指针访问内存中的数据。
存放在指针中的内存地址可能是一个函数的地址、一个对象地址,一个整数的地址。
如果指针变量所保存的是一个对象或者函数的地址,就说这个指针指向这个对象或者函数。
定义指针变量语法
数据类型*变量名;
数据类型表示指针指向的数据是何种数据类型,可以是int,string,double等
变量名是指针的名字。
*表示声明的是一个指针类型的变量
数据类型也称为指针类型
指向一个整型数据的指针称为整型指针
编码规则:一条语句只完成一件事情。