C++里有哪几种数据类型 |
您所在的位置:网站首页 › 言语沟通有哪几种类型 › C++里有哪几种数据类型 |
C++里有哪几种数据类型?
1.基本类型
布尔型
布尔型,即bool,它的取值只能是true(真)或者false(假),分别代表非零与零。对布尔型的赋值可以直接用true或者false进行赋值,也可以用整型常量对其进行赋值,只不过整型常量赋值给布尔型变量会自动转换为true或者false。true就是(非零,在计算机中存储时以1存储),false就是(零,计算机内以0存储)。 字符型char类型 char是基本的字符类型,一个char的空间应确保可以存放(机器基本字符集中)任意字符对应的数字值。也即,一个char的大小和一个机器字节(8bit)一样。储存ASCII码 其他字符类型 作用:用于扩展字符集。 wchar_t类型:用于确保可以存放机器最大扩展字符集中的任意一个字符。用于存储其他语言中的字符。 char16_t/char32_t类型:为Unicode字符集服务。 Unicode:是用于表示所有自然语言中字符的标准。 整形 数据类型定义标识符占字节数数值范围短整形short int2-216~~215-1整形int4-232~~231-1长整形long int4-232~~231-1超长整形long long int8-264~~263-1无符号整形unsigned20~~216-1无符号短整形unsigned short20~~216-1无符号长整形unsigned long40~~232-1无符号超长整形unsigned long long80~~264-1 浮点型float 数据类型被认为是单精度。double 数据类型通常是 float 的两倍大小,因此被认为是双精度。顾名思义,long double 数据类型又比 double 要大。这些数据类型的确切大小取决于当前使用的计算机。唯一可以保证的是: double 至少与 float 一样大。 long double 至少与 double一样大。 字符串类在C++标准库里,通过类string从新自定义了字符串。 头文件: #include string直接支持字符串连接 string直接支持字符串的大小比较 string直接支持子串查找和提取 string直接支持字符串的插入和替换 string同时具备字符串数组的灵活性,可以通过[ ]重载操作符来访问每个字符。 2.构造类型 数组类型一个数组就像一个变量,但是它可以存储一组值,所有值均具有相同的数据类型。这些值一起存储在连续的内存位置。数组的大小声明符必须是一个常量整数表达式,其值大于零。它可以是一个常数,也可以是一个命名常量。 int SIZE=5; int array[SIZE]; float arrayf[10]//10个float值的数组 char arrayc[20]//20个char值的数组 string arrays[5]//5个string对象的数组 结构体类型结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型,它的特点和数组主要有两点不同,首先结构体可以在一个结构中声明不同的数据类型。第二,相同结构的结构体变量是可以相互赋值的,而数组是做不到的,因为数组是单一数据类型的数据集合,它本身不是数据类型(而结构体是),数组名称是常量指针,所以不可以做为左值进行运算,所以数组之间就不能通过数组名称相互复制了,即使数据类型和数组大小完全相同。结构体可以描述数组不能够清晰描述的结构,这是数组所不具备的。 定义结构体使用struct修饰符 共用体类型共用体类型也是用来描述类型不相同的数据,但与结构体类型不同,共用体数据成员存储时采用覆盖技术,共享(部分)存储空间。在结构体中增加共用体类型成员,可使结构体中产生动态成员,相当于PASCAl,语言的变体记录。 共用体类型定义用关键字union标识 类类型类代表了某一批对象的共性和特征。类是对象的抽象,对象是类的具体实例。和结构体类型和结构体变量一样,c++中也是先声明一个类类型,然后用它去定义若干个同类型的对象。对象就是类类型的一个变量。 如 class Student //声明了一个名为student的类类型 { private: int num; public: void display(); }; Student stud1,stud2; //定义了两个Student类的对象事实上,类也是一种数据类型,它是一种广义的数据类型,过去接触的都是狭义的数据类型,如结构体类型的成员都是数据,而类这种数据类型的数据既包含数据也包含操作数据的函数。 枚举类型如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型。所谓“枚举”是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。 声明枚举类型用enum开头。 l例如 enum weekday{sun,mon,tue,wed,thu,fri,sat};上面声明了一个枚举类型weekday,花括号中sun,mon,…,sat等称为枚举元素或枚举常量。 表示这个类型的变量的值只能是以上7个值之一。它们是用户自己定义的标识符。 3.指针类型指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。 4.引用类型“引用”是c++的一种新的变量类型,是对C的一个重要补充。它的作用是为变量起一个别名。假如有一个变量a,想给它起一个别名。 int a;int &b=a;这就表明了b是a的“引用”,即a的别名。经过这样的声明,使用a或b的作用相同,都代表同一变量。在上述引用中,&是“引用声明符”,并不代表地址。不要理解为“把a的值赋给b的地址”。引用类型的数据存储在内存的堆中,而内存单元中只存放堆中对象的地址。声明引用并不开辟内存单元,b和a都代表同一变量单元。 注意:在声明引用变量类型时,必须同时使之初始化,即声明它代表哪一变量。在声明一个变量的引用之后,在本函数执行期间,该引用一直与其代表的变量相联系 引用的规则 (1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。 (2)不能有NULL引用,引用必须与合法的存储单元关联(指针则可以是NULL)。 (3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。 引用的主要功能: 传递函数的参数和返回值。 C++语言中,函数的参数和返回值的传递方式有三种:值传递、指针传递和引用传递。 5.空类型对于空类,编译器不会生成任何的成员函数,只会生成1个字节的占位符。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |