C++ 知识汇总

来源:互联网 发布:中文域名查询 编辑:程序博客网 时间:2024/05/29 05:00

一、其中数据类型,以及各数据类型占多少字节

#include<iostream>using namespace std;/*七种基本的 C++ 数据类型:   类型  关键字  布尔型  bool  字符型  char    整型  int  浮点型  float双浮点型  double  无类型  void宽字符型  wchar_t*/int main(){    /*    C语言C++变量的大小会根据编译器和所使用的电脑而有所不同    */    cout<<"   bool类型占"<<sizeof(bool)<<"字节"<<endl;    cout<<"   void类型占"<<sizeof(void)<<"字节"<<endl;    cout<<"   char类型占"<<sizeof(char)<<"字节"<<endl;    cout<<"wchar_t类型占"<<sizeof(wchar_t)<<"字节"<<endl;    cout<<"    int类型占"<<sizeof(int)<<"字节"<<endl;    cout<<"  float类型占"<<sizeof(float)<<"字节"<<endl;    cout<<" double类型占"<<sizeof(double)<<"字节"<<endl;    return 0;}
结果:

   bool类型占1字节   void类型占1字节   char类型占1字节wchar_t类型占2字节    int类型占4字节  float类型占4字节 double类型占8字节Process returned 0 (0x0)   execution time : 0.250 sPress any key to continue.

2、取别名运算符typedef

使用typedef运算符可以为一个类型取别名(基本类型,或者自定义类型),使用别名来定义变量,使得代码更加的简洁。

/**typedef.cpp使用 typedef 可以为一个已有的类型取一个新的名字。*/#include<iostream>using namespace std;typedef int myint;//把myint作为int类型的别名struct Man//定义一个结构Man{    string name;    int age;};typedef struct Man M;//给结构体Man 取别名 Mvoid printMan(struct Man man){    cout<<"姓名:"<<man.name<<" 年龄:"<<man.age<<endl;}void printM(M m)//使用别名后,定义结构变量可以省去关键字struct,这样更加直观简洁{    cout<<"姓名:"<<m.name<<" 年龄:"<<m.age<<endl;}int main(){    myint a=10;//所用int类型的别名来定义变量    cout<<"myint类型占"<<sizeof(myint)<<"个字节"<<endl;    cout<<"myint类型的变量a="<<a<<endl;    struct Man man;//定义一个结构变量    M m;//利用别名定义Man结构的变量m    man.age=10;    man.name="小明";    printMan(man);    m.age=20;    m.name="小蓝";    printM(m);    return 0;}
运行结果:

myint类型占4个字节myint类型的变量a=10姓名:小明 年龄:10姓名:小蓝 年龄:20Process returned 0 (0x0)   execution time : 0.312 sPress any key to continue.
3.枚举类型

/**enum 枚举类型:*//*"枚举"是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。创建枚举,需要使用关键字 enum。枚举类型的一般形式为:enum 枚举名{     标识符[=整型常数],     标识符[=整型常数],...    标识符[=整型常数]} 枚举变量;*/#include<iostream>using namespace std;int main(){    enum {A,B,C,D,E,F} enum1;    //默认情况下,第一个名称的值为 0,每个名称都会比它前面一个名称大 1//   所以 第二个名称的值为 1,第三个名称的值为 2,以此类推。    enum1=A;    cout<<enum1<<ends;    cout<<(enum1=B)<<ends;    cout<<(enum1=C)<<ends;    cout<<(enum1=D)<<ends;    cout<<(enum1=E)<<ends;    cout<<(enum1=F)<<endl<<endl;    enum {A1,B1,C1=6,D1,E1,F1} enum2;    //默认情况下,每个名称都会比它前面一个名称大 1    cout<<(enum2=A1)<<ends;    cout<<(enum2=B1)<<ends;    cout<<(enum2=C1)<<ends;    cout<<(enum2=D1)<<ends;    cout<<(enum2=E1)<<ends;    cout<<(enum2=F1)<<endl<<endl;    //枚举标识符,也可以直接输出,标识符本质上是整形常量    cout<<A1<<ends;    cout<<B1<<ends;    cout<<C1<<ends;    cout<<D1<<ends;    cout<<E1<<ends;    cout<<F1<<ends;    //不能对枚举常量赋值://    A1=20;//错误    return 0;}
结果:



4.枚举类型使用实例

/**enum2.cpp枚举的应用*/typedef enum{    Monday=1,Tuesdays,Wednesday,    Thursday,Friday,Saturday,Sunday}Weeks; #include<iostream>using namespace std;//cin,cout int main() {    Weeks week;//定义一个枚举变量    int temp;    string again="y";    while(again=="y"||again=="Y")    {        cout<<"Enter:";        cin>>temp;        if(temp>=1&&temp<=7)        {            week=(Weeks)temp;            switch(week)            {                case Monday:                    cout<<"Today is Monday"<<endl;                    break;                case Tuesdays:                    cout<<"Today is Tuesdays"<<endl;                    break;                case Wednesday:                    cout<<"Today is Wednesday"<<endl;                    break;                case Thursday:                    cout<<"Today is Thursday"<<endl;                    break;                case Friday:                    cout<<"Today is Friday"<<endl;                    break;                case Saturday:                    cout<<"Today is Saturday"<<endl;                    break;                case Sunday:                    cout<<"Today is Sunday"<<endl;                    break;            }        }        cout<<"again[y/n]?:";        cin>>again;    } }
测试:

Enter:1    Today is Mondayagain[y/n]?:yEnter:2    Today is Tuesdaysagain[y/n]?:yEnter:3    Today is Wednesdayagain[y/n]?:yEnter:4    Today is Thursdayagain[y/n]?:yEnter:5    Today is Fridayagain[y/n]?:yEnter:6    Today is Saturdayagain[y/n]?:yEnter:7    Today is Sundayagain[y/n]?:yEnter:8again[y/n]?:nProcess returned 0 (0x0)   execution time : 34.697 sPress any key to continue.