数据类型介绍和类型的基本归类方法_八种基本数据类型

数据类型介绍和类型的基本归类方法_八种基本数据类型字符类型:char:字符类型,用于表示单个字符,例如字母、数字或特殊符号

数据类型介绍和类型的基本归类

数据类型介绍

字符类型:
char:字符类型,用于表示单个字符,例如字母、数字或特殊符号。

整数类型:
short:短整型,通常占用2个字节,用于表示整数值。
int:整型,通常占用4个字节,用于表示整数值。在大多数情况下,我们使用int来表示整数。
long:长整型(省略了int),通常占用4或8个字节,用于表示较大范围的整数值。
long long:更长的整型(省略了int),通常占用8个字节或更多,用于表示非常大的整数值。

浮点数类型:
float:单精度浮点数,通常占用4个字节,用于表示带有小数部分的数值。精度约为6-7位小数。
double:双精度浮点数,通常占用8个字节,用于表示更高精度的带有小数部分的数值。精度约为15位小数。

不同的数据类型有不同的取值范围和占用空间大小,选择合适的数据类型可以提高程序的效率和节省内存空间。此外,正确选择数据类型还可以确保数据的有效性和准确性,并避免数据溢出或损失精度的问题。

类型的基本归类

在C语言中,signed和unsigned是用来修饰整数类型的关键字。
signed(有符号的):表示有符号的整数类型。默认情况下,如果不明确指定数据类型的符号修饰符,则会被视为signed类型。signed类型可以表示正数、负数和零。
unsigned(无符号的):表示无符号的整数类型。使用unsigned修饰的整数类型只能表示非负数(包括零),不能表示负数。

例如:
char 是 1个字节的空间 ,又等于 8个bit位,
在这里插入图片描述
通过使用signed或unsigned关键字,可以明确地指定整数类型的符号属性,以满足特定的需求。

整形家族:

char:字符在内存中存储的是字符的ASCII码值,ASCII码值是整型所以字符类型归类到整型家族。

unsigned charunsigned char 是C语言中的一种无符号字符类型,用于表示无符号的8位(1字节)整数值。它可以表示范围在 0 到 255(2^8-1)之间的非负整数。使用 unsigned char 可以存储不需要负数表示的字符数据或者表示不超过 255 的整数值。
例如:

unsigned char ch = 'A';   // 存储字符 'A'
unsigned char value = 200;   // 存储整数值 200

需要注意的是,unsigned char 类型只能表示非负整数,它没有用于表示负数的范围。当使用 unsigned char 时,应确保所存储的数值不会超出其有效范围,否则可能会导致溢出错误。
此外,与 signed char 类型相比,unsigned char 可以提供更大的正数范围,但不能用来表示负数。因此,在选择使用 char 类型时,需要根据具体需求和数值范围来决定使用 signed char 还是 unsigned char

signed charsigned char 是C语言中的一种有符号字符类型,用于表示带有符号位的8位(1字节)整数值。它可以表示范围在 -128 到 127 之间的整数。使用 signed char 可以存储需要负数表示的字符数据或者表示在 -128 到 127 范围内的整数值。
例如:

signed char ch = 'A';   // 存储字符 'A'
signed char value = -50;   // 存储整数值 -50

需要注意的是,对于有符号类型,最高位的比特位(即符号位)被用于表示正数和负数。因此,signed char 类型可以表示正数、负数和零。

在处理字符数据时,默认情况下,char 类型被视为 signed char 类型。所以当使用 char 类型时,通常可以存储正数、负数和零。如果想明确指定为 signed char 类型,可以显式地使用 signed char 关键字来声明变量。

short(省略掉了int):short 是C语言中的一种有符号短整型,通常占用2个字节(16位)的内存空间。它可以表示范围在 -32,768 到 32,767 之间的整数。使用 short 可以存储需要较小范围的整数值,但比 char 类型更大。
例如:

short num = 100;   // 存储整数值 100
short temperature = -20;   // 存储整数值 -20

需要注意的是,由于 short 类型的取值范围较小,如果存储的值超过了其有效范围,就可能导致溢出错误。在使用 short 类型时,应确保所存储的数值不会超出其取值范围。

此外,还有无符号的短整型 unsigned short,它可以表示范围在 0 到 65,535 之间的非负整数。根据具体的需求,可以选择使用有符号的 short 或无符号的 unsigned short

unsigned short [int]unsigned short 是C语言中的一种无符号短整型,通常占用2个字节(16位)的内存空间。它可以表示范围在 0 到 65,535 之间的非负整数。使用 unsigned short 可以存储不需要负数表示的较小范围整数值。
例如:

unsigned short num = 100;   // 存储非负整数值 100
unsigned short count = 500;   // 存储非负整数值 500

需要注意的是,unsigned short 类型只能表示非负整数,它没有用于表示负数的范围。当使用 unsigned short 时,应确保所存储的数值不会超出其有效范围,否则可能会导致溢出错误。

与有符号的 short 类型相比,unsigned short 可以提供更大的正数范围,但不能用来表示负数。因此,在选择使用 short 类型时,需要根据具体需求和数值范围来决定使用有符号的 short 还是无符号的 unsigned short

signed short [int]signed short 是C语言中的一种有符号短整型,通常占用2个字节(16位)的内存空间。它可以表示范围在 -32,768 到 32,767 之间的整数。使用 signed short 可以存储需要较小范围的有符号整数值。

例如:

signed short num = -100;   // 存储整数值 -100
signed short temperature = 50;   // 存储整数值 50

需要注意的是,对于有符号类型,最高位的比特位(即符号位)被用于表示正数和负数。因此,signed short 类型可以表示正数、负数和零。

unsigned short 类型相比,signed short 可以表示负数,而 unsigned short 只能表示非负整数。因此,在选择使用 short 类型时,需要根据具体需求和数值范围来决定使用有符号的 signed short 还是无符号的 unsigned short

int:在C语言中,int 是一种整数类型,用于表示整数值。它通常占用4个字节(32位)的内存空间,根据具体的平台和编译器可能会有所变化。

int 类型可以表示范围在 -2,147,483,648 到 2,147,483,647 之间的整数,包括负数、正数和零。

例如:

int x = 10;     // 正数
int y = -5;     // 负数
int z = 0;      // 零

int 是C语言中最常用的整数类型之一,在大多数情况下都能满足一般的整数计算需求。如果需要处理更大或更小范围的整数,可以考虑使用 long intshort int 等其他整数类型。

需要注意的是,对于有符号的 int 类型,默认情况下被视为 signed int,可以省略 signed 关键字。而无符号的整数类型使用 unsigned int 来表示。

signed int:在C语言中,signed int 是一种有符号的整数类型。signed int 可以表示范围在 -2,147,483,648 到 2,147,483,647(包括边界值)之间的整数。

需要注意的是,在C语言中,int 默认情况下被视为 signed int,因此可以省略 signed 关键字。以下两种写法是等价的:

int x;        // signed int
signed int y; // signed int

如果显式地使用 signed int 来声明变量,它仍然表示有符号的整数类型。

示例:

signed int temperature = -20;   // 有符号的整数变量
signed int count = 1000;        // 有符号的整数变量

由于 signed int 是默认的整数类型,通常情况下我们不必显式地将其指定为变量的类型。

unsigned int:在C语言中,unsigned int 是一种无符号的整数类型。unsigned int 可以表示范围在 0 到 4,294,967,295(包括边界值)之间的非负整数。

unsigned int 类型可以存储非负整数,而不包含负数。

示例:

unsigned int num = 100;        // 无符号的整数变量
unsigned int count = 5000;     // 无符号的整数变量

需要注意的是,无符号整数类型 unsigned int 在处理溢出时具有循环特性,即当计算结果超过其表示范围时,会从该范围的另一端重新开始。

与有符号的 int 类型相比,unsigned int 提供了更大的正数范围,但不能用来表示负数。根据所需的数值范围和数据的符号性质,可以选择使用有符号的 int 还是无符号的 unsigned int

long [int]:在C语言中,long 是一种长整型,用于表示较大范围的整数值。它通常占用4个字节或8个字节的内存空间,具体取决于编译器和操作系统。

  • long:默认情况下,long 被视为有符号的长整型,可以表示范围在 -2,147,483,648 到 2,147,483,647(32位平台)或 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807(64位平台)之间的整数。

例如:

long x = 1000000L;   // 有符号的长整型变量

需要注意的是,在声明 long 类型时,可以使用 L 后缀将整数常量明确指定为长整型,以防止溢出错误。

如果需要更大范围的整数,可以使用 long long 类型。另外,也可以使用无符号的 unsigned longunsigned long long 来表示非负整数范围。根据具体需求,选择适合的长整型类型来存储整数值。

unsigned long [int]:在C语言中,unsigned long 是一种无符号的长整型,用于表示非负整数值。它通常占用4个字节或8个字节的内存空间,具体取决于编译器和操作系统。

unsigned long 可以表示范围在 0 到 4,294,967,295(32位平台)或 0 到 18,446,744,073,709,551,615(64位平台)之间的非负整数。

例如:

unsigned long num = 1000000UL;   // 无符号的长整型变量

需要注意的是,在声明 unsigned long 类型时,可以使用 UL 后缀将整数常量明确指定为无符号长整型。

与有符号的 long 类型相比,unsigned long 提供了更大的正数范围,但不能用来表示负数。根据所需的数值范围和数据的符号性质,选择适合的长整型类型来存储整数值。

signed long [int]:在C语言中,signed long 是一种有符号的长整型,用于表示较大范围的整数值。它通常占用4个字节或8个字节的内存空间,具体取决于编译器和操作系统。

  • signed long:默认情况下,long 被视为有符号的长整型,可以表示范围在 -2,147,483,648 到 2,147,483,647(32位平台)或 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807(64位平台)之间的整数。

例如:

signed long x = -1000000L;   // 有符号的长整型变量

需要注意的是,在声明 signed long 类型时,可以使用 L 后缀将整数常量明确指定为长整型。

与无符号的 unsigned long 类型相比,signed long 可以表示负数和正数范围,而无符号类型只能表示非负整数。根据所需的数值范围和数据的符号性质,选择适合的长整型类型来存储整数值。

注释:

int:
int a = signed int a(默认是有符号的,short和long同理)
unsigned int a(无符号要写明)

char:
char在绝大部分编译器中等于signed char,但也有可能等于unsigned char,C语言标准并没有规定,取决于编译器
char:模棱两可
unsigned char:明确是无符号
signed char:明确是有符号

浮点数家族:

floatfloat 是C语言中的一种浮点数类型,用于表示单精度浮点数。它通常占用4个字节(32位)的内存空间。使用 float 可以进行一般的浮点数计算,适用于大多数普通的数值运算和科学计算。然而,相对于 double 类型,float 类型提供的精度较低,约为6-7位有效数字。
例如:

float pi = 3.14159265358979f;
float result = sqrtf(2.0f);  // 使用 float 计算平方根

需要注意的是,由于浮点数在计算机中的存储方式以及精度限制,float 类型可能会存在舍入误差和精度损失的问题。在某些情况下,特别是需要高精度计算或对精确性要求较高的应用程序中,可能需要使用 double 或其他更高精度的数据类型来处理。

doubledouble 是C语言中的一种浮点数类型,用于表示双精度浮点数。它通常占用8个字节(64位)的内存空间,相对于 float 类型来说,提供了更高的精度。
使用 double 可以处理大部分常见的浮点数计算,适用于一般的数值运算和科学计算。它可以表示更大范围的数值,并提供约15位的有效数字。
例如:

double pi = 3.141592653589793;
double result = sqrt(2.0);  // 使用 double 计算平方根

需要注意的是,由于浮点数在计算机中的存储方式以及精度限制,double 类型可能会存在舍入误差和精度损失的问题。在某些情况下,特别是需要高精度计算或对精确性要求较高的应用程序中,可能需要使用其他更高精度的数据类型或使用特殊的数值计算库来处理。

long doublelong double 是C语言中的一种浮点数类型,用于表示更长的双精度浮点数。它通常占用8字节或更多的内存空间,相对于 double 类型来说,提供了更高的精度。
使用 long double 可以处理需要更高精度的浮点数计算,适用于涉及大量小数位数或对精度要求较高的计算场景。
例如:

long double pi = 3.141592653589793238462643383279502884L;
long double result = sqrtl(2.0L);  // 使用 long double 计算平方根

需要注意的是,long double 在不同的平台和编译器中的具体大小和精度可能会有所差异。因此,在使用 long double 类型时,建议仔细检查特定平台和编译器的文档以了解其支持的范围和精度。

构造类型(自定义类型):
构造类型是在C语言中用于组合多个数据元素的一种方式,它们包括数组类型、结构体类型、枚举类型和联合类型。

  • 数组类型:数组是相同类型的元素按照一定顺序排列的集合。通过指定元素类型和数组长度来定义数组类型。例如,int numbers[5]; 定义了一个包含5个整数元素的整型数组。

  • 结构体类型(struct):结构体是不同类型的数据元素按照一定顺序组合在一起的复合数据类型。通过定义结构体模板并实例化结构体变量来定义结构体类型。例如,

    struct Person { 
         
        char name[20];
        int age;
        float height;
    };
    
    struct Person p1;  // 定义了一个名为 p1 的结构体变量
    
  • 枚举类型(enum):枚举类型是用于定义一组命名常量的数据类型。通过定义枚举标识符和枚举常量列表来定义枚举类型。例如,

    enum Color { 
         
        RED,
        GREEN,
        BLUE
    };
    
    enum Color c1;  // 定义了一个名为 c1 的枚举变量
    
  • 联合类型(union):联合是一种特殊的数据类型,可以在相同的内存空间中存储不同类型的数据。通过定义联合成员和联合变量来定义联合类型。例如,

    union Data { 
         
        int i;
        float f;
        char str[20];
    };
    
    union Data d1;  // 定义了一个名为 d1 的联合变量
    

这些构造类型提供了更灵活和复杂的数据结构,可以用于组织和存储不同类型的数据,并提供了方便的访问方式和数据操作功能。

指针类型:
指针类型是C语言中的一种特殊数据类型,用于存储变量的内存地址。通过指针,可以间接地访问和操作内存中的数据。

在C语言中,指针类型的声明使用一个*符号来表示。以下是几种常见的指针类型示例:

  • int *pi;:这是一个指向整型数据的指针。它可以用于存储整型变量的内存地址。

  • char *pc;:这是一个指向字符数据的指针。它可以用于存储字符变量的内存地址。

  • float *pf;:这是一个指向单精度浮点数数据的指针。它可以用于存储单精度浮点数变量的内存地址。

  • void *pv;:这是一个指向void类型(无类型)数据的指针。void指针可以存储任何类型的数据的地址,但无法直接操作所指向的数据。通常在需要处理不同类型的指针时使用void指针。

请注意,声明指针类型只是为指针变量分配了内存空间,但尚未初始化。要使指针变量指向有效的内存地址,需要将其赋值为相应变量的地址或者使用动态内存分配函数(如malloc())来分配内存。

空类型:
void表示空类型(无类型)
通常应用于函数的返回类型、函数的参数、指针类型
在这里插入图片描述

void 是C语言中的一种特殊类型,表示空类型或无类型。它在以下情况下常常被应用:

  • 函数返回类型:当函数不需要返回任何值时,可以将其返回类型声明为 void。例如:void func();

  • 函数参数:当函数不接受任何参数时,可以使用 void 来表示没有参数。例如:void func(void);

  • 指针类型:void* 是一种通用的指针类型,可以存储任意类型的地址。这在需要处理未知数据类型的指针时非常有用。但由于 void* 本身是无类型的,不能直接访问所指向的数据,需要进行类型转换才能操作。

除此之外,在某些特定的上下文中,void 也可用于其他目的,例如函数指针中的占位符类型、结构体中的空字段等。

需要注意的是,不能声明一个 void 类型的变量,因为它没有具体的大小和存储形式。 void 只能作为函数返回类型、函数参数或指针类型的修饰符来使用。

今天的文章数据类型介绍和类型的基本归类方法_八种基本数据类型分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/84834.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注