首页 >常见问题 >c++数据类型有哪些

c++数据类型有哪些

青灯夜游
青灯夜游原创
2019-02-27 15:05:2059865浏览

c++中的数据类型分为两大类:1、预定义类型,包含整型、字符型、布尔型、浮点型、空类型,指针类型;2、自定义数据类型,包含数组、结构体struct、联合体union、枚举enum。

c++数据类型有哪些

C++ 为程序员提供了种类丰富的内置预定义数据类型和用户自定义的数据类型。下面我们将为大家具体介绍这两大类型的数据,具有一定的参考作用,希望对大家有所帮助。

【视频教程推荐:C++教程

c++中的数据类型:

1、预定义类型

整型

c++有四种整型类型:short、int、long、long long,每种都有signed(有符号,默认)、unsigned(无符号)两种分类,有符号整数既可以表示非负整数,又可以表示负整数;但是,无符号整数不能表示负数,只能表示非负整数。

在c++的实现中,每一种类型在不同系统上使用的存储位数(宽度)是不同的,其规则为:

 ● short至少16位

 ● int至少与short一样长

 ● long至少32位,且至少与int一样长

 ● long long至少64位,且至少与long一样长

字符型

类型  含义  该类型数据所占的最小比特位数
char  字符  8位(即可表示28个字符)
wchar_t 宽字符  16位
char16_t Unicode字符  16位
char32_t  Unicode字符  32位

布尔型

布尔类型(bool)是C++新增的一种基本数据类型。在标准的C语言中并未定义bool类型,如果需要使用bool类型,程序员可以通过宏定义来自定义一个bool类型,定义语句如下:

#define bool int
#define false 0
#define true 1

也就是将int型定义为bool型,将int型的0和1两个值分别定义为bool类型的两个值true和false。

1.png

浮点型

浮点型分为以下几种:

2.png

空类型

关键字void定义的类型,不能用于普通变量的声明和普通的操作,只能用于指针型变量,函数返回值和函数参数。

指针类型

指针,用来描述内存地址,并通过提供指针操作来实现与内存相关的程序功能。

<类型>* <指针变量>;

说明:

其中98ab46b3bc4b185722ad28c279133801决定了指向的内存空间的大小。

指针变量也是一种变量,有着自己的内存空间,该空间上存储的是另一个变量的内存空间。

2、自定义数据类型

数组类型

数组类型是一种有固定多个同类型的元素按一定次序所构成的数据类型。

1、一维数组类型

 1)定义

数据类型 数组名[元素个数] ;

2)操作

● 通过下标访问元素。

  注意下标是否越界。(C++中为了保证程序的执行效率不对下标越界进行检查,越界时可以运行,但是结果不可预测)

● 初始化

  int a[10] = {1,2,3};//其他元素初始化为0

  int a[] = {1,2,3};//元素个数为3

2、二维数组类型

 1)定义

数据类型 数组名[常量表达式1][常量表达式2]

2)初始化  

int a[2][3] = {{1,2,3},{4,5,6}}; 
//等同于 
int a[2][3] = {1,2,3,4,5,6};//二维数组可以转成一维数组进行处理,但是要注意下标
int a[][3] = {{1,2},{3,4,5}};//第一个下标可以省略,其他的不能,更高维的数组也同此。

按行存储!

结构体数据类型

1、结构体

结构体是由一系列具有相同类型或者不同类型的数据构成的数据集合。

定义:

  struct 名称{
    数据类型 变量名1;
     数据类型 变量名2;
     。。。。 
     数据类型 变量名n;
   }结构体变量名;

2、结构体数组:

struct Info{
   int age;
   char name[32];
}info[SIZE];

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;

联合体类型

联合体的使用方式和结构体及普通变量类似。

union 名称{
  类型变量符 变量名;
   ......
    类型变量符 变量名;
  };

联合体的主要作用就是节省内存,因为联合体中的·变量不像结构体中的成员变量那样,系统会给其中的每一个变量都分配相应的内存。在联合体中,所有的成员变量共享一块内存空间。该内存空间是其成员变量中占字节数最多的变量所占用的内存空间,并且所有的成员变量共用这一块内存空间,因此联合体中所有成员变量地址是一样的。

枚举类型

枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。

如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型。所谓"枚举"是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。

创建枚举,需要使用关键字 enum。枚举类型的一般形式为:

enum 枚举名{ 
     标识符[=整型常数], 
     标识符[=整型常数], 
... 
    标识符[=整型常数]
} 枚举变量;

如果枚举没有初始化, 即省掉"=整型常数"时, 则从第一个标识符开始。

例如,下面的代码定义了一个颜色枚举,变量 c 的类型为 color。最后,c 被赋值为 "blue"。

enum color { red, green, blue } c;
c = blue;

默认情况下,第一个名称的值为 0,第二个名称的值为 1,第三个名称的值为 2,以此类推。但是,您也可以给名称赋予一个特殊的值,只需要添加一个初始值即可。例如,在下面的枚举中,green 的值为 5。

enum color { red, green=5, blue };

在这里,blue 的值为 6,因为默认情况下,每个名称都会比它前面一个名称大 1,但 red 的值依然为 0。

以上是c++数据类型有哪些的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn