c值类型有哪些

Z, ZLW 719

c值类型有:1、基本类型;2、枚举类型3、空类型;4、派生类型。其中,基本类型包括整型类型和浮点类型,整型类型包括整数类型(int)、短整型(short int)、长整型(long int)、双长整型(long long int)、字符型(char)、布尔型(bool)。

1、基本类型

基本类型包括整型类型和浮点类型。

整型类型

  • 整数类型(int):INT是用于定义整数类型变量的标识符,在一般的电脑中,int占用4字节,32比特,数据范围为-2147483648~2147483647[-2^31~2^31-1]。
  • 短整型(short int):所占字节和取值范围均与基本型相同,占用2字节,数据范围为-32768~32767,即 -2~(2-1)。
  • 长整型(long int):在内存中占4个字节,数据范围为-2147483648~2147483647,即 -2~(2-1)。
  • 双长整型(long long int):64位长整型数据类型,它能支持的整数范围是-2^63到2^63-1。
  • 字符型(char):不具计算能力的文字数据类型,它包括中文字符、英文字符、数字字符和其他ASCⅡ字符,其长度(即字符个数)范围是0-255个字符,即0x00至0xFF。
  • 布尔型(bool):布尔型的值只有两个:false(假)和true(真)。且false的序号为0,true的序号是1(或者是非0)。

浮点类型

  • 单精度浮点型(float):单精度浮点型(float )专指占用32位存储空间的单精度(single-precision )值。单精度在一些处理器上比双精度更快而且只占用双精度一半的空间,但是当值很大或很小的时候,它将变得不精确。当你需要小数部分并且对精度的要求不高时,单精度浮点型的变量是有用的。例如,当表示美元和分时,单精度浮点型是有用的。
  • 双精度浮点型(double):双精度型,正如它的关键字“double ”表示的,占用64位的存储空间。在一些现代的被优化用来进行高速数学计算的处理器上双精度型实际上比单精度的快。所有超出人类经验的数学函数,如sin( ),cos( ) ,tan()和sqrt( )均返回双精度的值。当你需要保持多次反复迭代的计算的精确性时,或在操作值很大的数字时,双精度型是较好的选择。
  • 复数浮点型(float_complex、double_complex、long long_complex):我们常将整型和浮点型称之为实数,而复数是实数的拓展延伸。复数也有两种 complex64 和 complex128,这两种类型分别由 float32 和 float64 构成。math/cmplx 库提供了复数运算所需要的函数。复数可以通过两个部分表示,一个是实部(real),一个是虚部(imag)。

2、枚举类型

enum是C语言中的一个关键字,enum叫枚举数据类型,枚举数据类型描述的是一组整型值的集合(这句话其实不太妥当),枚举型是预处理指令#define的替代,枚举和宏其实非常类似,宏在预处理阶段将名字替换成对应的值,枚举在编译阶段将名字替换成对应的值。

3、空类型

一种特殊的返回类型,表示空函数,也就是没有返回值的函数。空类型 void 用于显示说明一个函数不返回任何值。还可以说明指向 void 类型的指针,说明以后,这个指针就可指向各种不同类型的数据对象。

4、派生类型

  • 指针类型(*):指针变量的类型分为整形指针、字符指针、数组指针等等。但它们都有一个共同点:在32位系统下占4个字节,在64位系统下占8个字节。
  • 数组类型([ ]):Array是数组类型,数组是一种非常重要的数据类型,它可以将多个不同类型的数据项存储到一个结构体中,这个结构体就是数组,每个数据项称为数组的元素。
  • 结构体类型(struct):C语言允许用户自己建立由不同类型的数据组成的组合型数据结构,它称为结构体。
  • 共用体类型(union):
  • 共用体类型又称“联合类型”,简称共用体。共用体类型的说明和变量的定义方式与结构体类型说明和变量的定义方式相类同。它们的区别是结构体变量中的成员各自占有自己的存储空间。而共用体类型变量中的所有成员占有同一个存储空间。
  • 函数类型:C语言编程中有两种类型的函数:库函数:是在C头文件中声明的函数,如:scanf(),printf(),gets(),puts(),ceil(),floor()等;用户定义的函数:是由C程序员自己创建的函数,以便他/她可以使用它多次。 它可以降低大型程序的复杂性并优化代码。

延伸阅读

C语言中的类型转换

  • 隐式类型转换:编译器自动将左右操作数变成相同类型去计算。
  • 显式类型转换:程序开发者主观上去将类型强制转换。

注意:在类型转换的过程中首先明确整值提升的定义:整值提升是将出现的字符类型(char)和短整型(short)统一先提升为int型(特殊情况下,也会提升为unsigned int )

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部