C/C++数据类型

2019-07-22  本文已影响0人  LogyKoala
  1. 基本数据类型

    • 整型
      • 长整型(long int或者long)占位符%ld
      • 整型(int)占位符%d
      • 短整型(short int)占位符%x
    • 浮点型
      • 单精度(float)占位符%f
      • 双精度 (double 类似long float)占位符%lf
      • 长双精度(long double)
    • 字符型(char)占位符 %c
    • 布尔型(bool)
  2. 构造类型

    • 枚举类型(enum)

       //定义:枚举类型为int类型 按照顺序来
      //好处:限定了值,保证取值的安全性
      enum MessageType{
          Text,Image,File,Video =20
      };
      
      //使用
      enum MessageType message =Image;
      
       //定义 匿名
      enum{
          Text,Image,File,Video =20
      } message;
      
      //使用
      message =Image;
      
    • 数组类型

      • 由类型名、标识符、维数,组成的复合型数据类型
      1. 一维数组
        1. 定义 :类型名 标识符[维数]
        int a[2];
        int b[]={1,2,3};
        
        1. 引用数组中的元素:标识符[维数]
          a[0];//数组中的第0个元素
        
        1. 初始化
        int b[]={1,2,3};
        b[0] =1;
        
    • 结构体类型(struct):是一种构造数据类型

      1. 定义
        // 第一种定义
        struct Users{
            int age;
            char name[10];
        }
        //使用1
        //初始化,在构造中初始化
        struct Users u ={18,  "name"};
        u.name;
        u.age;
        //使用2
        //成员赋值,进行初始化
        struct Users u;
        u.age =10;
        strcpy(u.name,"name");
        
        //第二种定义
        struct Users{
            int age;
            char name[10];
        } u={18,"name"};
        //直接使用
        u.name;
        u.age;
        
        //第三种定义
        struct Users{
            int age;
            char name[10];
        } u;
        //使用
        u.name =100;
        strcpy(u.name,"name");
        
        //第四种定义-结构体嵌套
        struct Order{
            int count;
        }
        struct Users{
            int age;
            char name[10];
            Order order;
        }
        //或者
        struct Users{
            int age;
            char name[10];
           struct Order{
                int count;
            } order;
        }
        //初始化与使用
        Users users ={12,"张三",{99}};
        users.age;
        user.name;
        user.order.count;
        
        //第五种定义-匿名结构体:定义的同时至少有一个声明的变量,否则没有意义
        //好处:可以控制结构体变量的数量(只有u这一个变量),一定程度上避免出现结构体重名现象
        struct{
            int age;
            double height;
        } u;
        //使用
        u.age =100;
        u.height=167;
        
        //结构体与数组
        struct Users{
            int age;
            char name[10];
        }u1[2],u2[2]={{10,"张三"},{20,"李四"}};
        //使用
        u2[0];
        //赋值
        u1[0].age=10;
        
      2. 用途
        把不同的数据类型整合起来,成为一个自定义的数据类型
      3. typedef 给结构体取别名
      struct Users{
          int age;
          double height;
      }
      // 取别名
      typedef struct Users TypedefUsers;
      //  使用
      TypedefUsers users;
      users.age =18;
      users.height =180;
      
    • 共用体类型/联合体(union)

      1. 作用
        使多个不同类型的变量共用一块内存区域。联合体变量任何时候只有一个成员变量在内存中存在。(节约内存)
      2. 规律
        联合体分配内存大小=最大成员所占的内存字节数(基本数据类型)
      3. 定义与使用
        // 定义
        union Student{
            int id;
            char name[10];
        };
        //初始化
        union Student stu;
        stu.id =100;
        strcpy(stu.name,"张三");
        //使用
        stu.id;
        
      4. 取别名
        typedef union Users{
            int age;
        }TypedefUsers;
        // 使用
        TypedefUsers users;
        users.age =10;
        
    • 类类型(class)

      1. 字符串类string
        1. 定义: string 变量名; 或者 string 变量名1,变量名2;
        2. 赋值
          string initStr() {
              //std:: 拿到string的命名空间 
              std::string word = "then";//string可以用字符串常量赋值
              word[2] = 'a';//也可以对某个字符进行操作
              return word;//  执行结果 word的执行结果为"than"
          }
          
          或者
          using namespace std;//定义命名空间
          string initStr() {
              string word = "then";//string可以用字符串常量赋值
              word[2] = 'a';//也可以对某个字符进行操作
              return word;//  执行结果 word的执行结果为"than"
          }
          
        3. 字符串运算
          赋值(复制 =)
          void changeStr(){
              string as;
              string word="word";
              as =word;
          }
          
          链接(+)
          using namespace std;
          void changeStr(){
              string as;
              string word="word";
              as =word;
          }
          
          比较(关系运算符)
          挨个比较字符,和字符串长度无关
        4. 字符串数组
          string  a[] ={"123","456"};
          a[0];
          
  3. 引用类型

  4. 指针类型

  5. 空类型

上一篇 下一篇

猜你喜欢

热点阅读