c++中的数据类型

1.数据类型简介

c++中数据类型分为两种:预定义类型和于定义数据类型。

预约义类型:整型(int 4独字节)

                   字符型

                   布尔型 (bool)

                 
 浮点型(4个字节)

                 
空类型:关键字void,不能够用来普通变量的扬言和平常的操作,只能用来指针型变量,函数返回值和函数参数。

                  指针类型

自打定义类型:数组、结构体(struct)、联合体(union)、枚举(enum).具体在下面介绍

2.类型修饰符:

 signed,unsigned,short,long。

 signed int a;//有号子整数

 short int a;//短整型,2个字节

 long int a;//长整型,4个字节

 

 c++11中新增:long
long整型有零星栽:long long和unsigned long long。在C++11遭,标准要求long
long整型可以当不同平台及发异之长短,但起码发生64各。我们在写常数字面量时,可以应用LL后缀(或是ll)标识一个long
long类型的字面量,而ULL(或ull、Ull、uLL)表示一个unsigned long
long类型的字面量。比如:
long long int lli =
-9000000000000000000LL;
unsigned long long int ulli =
-9000000000000000000ULL;

 

 另外就几只标志只能修饰int。

3.据为己有位符总结:

 %d:int

 %ld:long

 %f:float

 %lf:double

 %p:输出变量地址

 %x/%X:输出十六进制数

 %s:输出字符串

 %o:无符号八进制整数

 %u:无符号十进制整数

 %e/%E:用科学记数法输出浮点数

 

4.核心数据类代码示例:

#include"stdio.h"
int a;
float b;
double c;
void ceshi();
int main(void)
{
    int d;
    int num=2147483646;//和最大值差1  最大值:2147483647
    float f=1.234567;
    char arr[]="abc";

    printf("num=%d\n",num+21);//-2147483648;
    printf("f=%f\n",f/4);//0.308642
    printf("arr的地址:%p\n",arr);//0028FEFC
    printf("arr的字符串:%s\n",arr);//abc
    long int lnum;
    printf("长整型占用字节数:%d\n",sizeof(lnum));//4
    printf("整型占用字节数:%d\n",sizeof(num));//4
    printf("默认值:%d\n",lnum);//38 随机的
    printf("main默认值:%d\n",d); //随机数
    printf("默认值:%f\n",b);  //0.000000
    printf("默认值:%f\n",c);  //0.000000
    printf("默认值:%lf\n",c);  //0.000000

    ceshi();
    return 0;

}
void ceshi(){
   int a=2,b=3,c=5,num;

   num=a+b%c;
   printf("jisuan: %d\n",num);//5
   char cc[64];
   scanf("%s",cc);
   printf("输入的值为:%s aa\n",cc);
}

  C++ 1

 5.结构体数据类型

   
5.1结构体是出于同名目繁多具有相同档次或者不同类别的数量做的数量集合。

 定义:

  struct 名称{

    数据类型 变量名1;

     数据类型 变量名2;

     。。。。 

     数据类型 变量名n;

   }结构体变量名;

   5.2结构体数组:

    struct Info{

      int age;

      char name[32];

    }info[SIZE];

  5.3结构体嵌套:

    struct BookInfo{

     char name[SIZE];
    char author[SIZE];
   int status;
  };
  struct ReadreInfo{
   char Name[SIZE];
   char Date[SIZE];
  };
//结构体嵌套
 struct LibraryInfo{
   int ID;
   struct BookInfo book;
   struct ReadreInfo reader;
  }LibraryInfo;

代码示例:

#include <stdio.h>
#define SIZE 32

int main(void){

 struct BookInfo{
 char name[SIZE];
  char author[SIZE];
  int status;
};
struct ReadreInfo{
 char Name[SIZE];
 char Date[SIZE];
};
//结构体嵌套
struct LibraryInfo{
    int ID;
    struct BookInfo book;
    struct ReadreInfo reader;
    }LibraryInfo;
printf("input the book id:\n");
scanf("%d",&LibraryInfo.ID);
printf("input the book name:\n");
scanf("%s",LibraryInfo.book.name);
printf("input the book author:\n");
scanf("%s",LibraryInfo.book.author);
printf("input the book status:\n");
scanf("%d",&LibraryInfo.book.status);

printf("input the reader name:\n");
scanf("%s",LibraryInfo.reader.Name);
printf("input the reader BorrowDate:\n");
scanf("%s",LibraryInfo.reader.Date);

printf("图书信息如下:\n");
printf("图书编号:%d\n",LibraryInfo.ID);
printf("书名:%s\n",LibraryInfo.book.name);
printf("图书作者:%s\n",LibraryInfo.book.author);
printf("图书当前状态:%d\n",LibraryInfo.book.status);
printf("读者姓名:%s",LibraryInfo.reader.Name);
printf("借阅日期:%s",LibraryInfo.reader.Date);

return 0;

}

 

  C++ 2

 6.联合体

   联合体的以方式以及结构体及常见变量类似。

  union 名称{

  类型变量符 变量名;

   ……

    类型C++变量符 变量名;

  };

 联合体的基本点意图就是是省去内存,因为联合体中之·变量不像结构体中的积极分子变量那样,系统会叫内部的各国一个变量都分配相应的内存。在联合体中,所有的成员变量共享一片内存空间。该内存空间是那个成员变量中占字节数最多的变量所占用的内存空间,并且有所的分子变量共用就无异于块内存空间,因此联合体中有成员变量地址是相同的。

以身作则代码:

#include <stdio.h>
#define SIZE 32

int main(void){
  union Info{
    int age;
    char Name[32];
    char Address[64];
   }info;

   printf("input age:\n");
   scanf("%d",&info.age);
   printf("age:%d\n",info.age);

   printf("input name:\n");
   scanf("%s",info.Name);
   printf("name:%s\n",info.Name);

   printf("input address:\n");
   scanf("%s",info.Address);
   printf("address:%s\n",info.Address);//jinan
   printf("name:%s\n",info.Name); //jinan 和上边的一样,被覆盖
   printf("age:%d\n",info.age);  //1634625898
   printf("name地址:%p\n",info.Name);
   printf("age地址:%p\n",&info.age); //0028FED0地址和上边一样
   return 0;
}

  C++ 3、、

  从图被好观看:最下address和name最后的输出是一律的,jinan把前面的chaochao覆盖掉啊

  另外她具备变量的地址也是平等的。

 7.枚举类型

 enum 枚举类型名{

  元素列表;

 };

 例:enum
Season{SPRING,SUMMER,AUTOMN,WINTER};

示范代码:

#include <iostream>
#include <stdio.h>
using namespace std;

int testEnum();
int main()
{
    cout << "Hello world!" << endl;
    testEnum();
    return 0;
}

//枚举类型中的变量为整型常量,除了定义时可以赋值外,其他时间都不可以
int testEnum(){
  enum FourSeason1{
   SPRING,
   SUMMER,
   AUTOMN,
   WINTER
  };
  enum FourSeason2{
   SPRING2=2,
   SUMMER2,
   AUTOMN2,
   WINTER2
  };
  enum FourSeason3{
   SPRING3=1,
   SUMMER3,
   AUTOMN3=5,
   WINTER3
  };
  enum FourSeason1 curSeason1,PreSeason1;
  enum FourSeason2 curSeason2,PreSeason2;

  enum FourSeason3 curSeason3,PreSeason3;

  curSeason1=WINTER;
  PreSeason1=AUTOMN;

  curSeason2=WINTER2;
  PreSeason2=AUTOMN2;

  curSeason3=WINTER3;
  PreSeason3=AUTOMN3;

  printf("curSeason1 is %d\n",curSeason1);//3
  printf("PreSeason1 is %d\n",PreSeason1);//2
  printf("curSeason2 is %d\n",curSeason2);//5
  printf("PreSeason2 is %d\n",PreSeason2);//4
  printf("PreSeason2 is %d\n",curSeason3);//6
  printf("PreSeason2 is %d\n",PreSeason3);//5
  printf("SUMMER3 is %d\n",SUMMER3);//2 SUMMER3
  cout << SUMMER3 <<endl;

  return 0;
}

  C++ 4

 先写这么多,以后再次补偿。。