C语言基本数据类型具体有哪些?

99ANYc3cd6
预计阅读时长 10 分钟
位置: 首页 C语言 正文

整型

整型用于表示没有小数部分的整数,根据数值的范围和所占内存空间的不同,C语言提供了多种整型类型。

类型名称 关键字 描述 典型大小(字节) 典型范围
基本整型 int 系统最自然的大小整数,通常与机器字长相同。 4 -2,147,483,648 到 2,147,483,647
短整型 short 通常占用比 int 少的空间。 2 -32,768 到 32,767
长整型 long 通常占用比 int 相同或更多的空间。 4 或 8 -2,147,483,648 到 2,147,483,647 或更大
双长整型 long long C99标准引入,保证至少64位,范围非常大。 8 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

修饰符:

  • signed:表示类型可以存储正数、负数和零,这是默认的整型修饰符。
  • unsigned:表示类型只能存储非负数(0和正数),这使其正数范围是 signed 类型的两倍。

示例:

int a = 100;           // 有符号基本整型
unsigned int b = 500;   // 无符号基本整型
short c = -32768;      // 有符号短整型
long d = 123456789L;   // 有符号长整型 (L后缀表示long)
long long e = 999999999999LL; // 有符号双长整型 (LL后缀表示long long)

浮点型

浮点型用于表示带有小数部分的实数,也称为实型。

类型名称 关键字 描述 典型大小(字节) 精度
单精度浮点型 float 占用内存较少,精度较低,通常用于对精度要求不高的科学计算。 4 约6-9位有效数字
双精度浮点型 double 默认的浮点类型,占用内存较多,精度更高,是浮点运算的首选。 8 约15-17位有效数字
长双精度浮点型 long double 提供比 double 更高的精度(在某些实现中)。 8 或 16 通常比 double 更高

示例:

float price = 19.99f;      // 单精度,f后缀表示float
double pi = 3.1415926535;  // 双精度,默认不加后缀
long double large = 1.23e100L; // 长双精度,L后缀表示long double

字符型

字符型用于表示单个字符,如字母、数字、标点符号等。

类型名称 关键字 描述 典型大小(字节) 典型范围
字符型 char 存储 ASCII 或其他字符集中的字符,在C语言中,char 本质上是一个小范围的整型。 1 -128 到 127 (signed) 或 0 到 255 (unsigned)

修饰符: 和整型一样,char 也可以使用 signedunsigned 修饰符,默认情况下,charsigned 还是 unsigned 由编译器决定。

示例:

char grade = 'A';       // 存储字符 'A'
char newline = '\n';    // 存储换行符 (转义字符)
unsigned char ch = 255; // 存储一个无符号字节值

空类型

类型名称 关键字 描述
空类型 void void 的字面意思是“无类型”或“空类型”,它不表示任何数据值,主要有三个用途:
函数返回值:表示函数不返回任何值。
函数参数:表示函数不接受任何参数。
通用指针void* 类型的指针可以指向任何类型的数据(但不能直接解引用,需要先强制类型转换)。

示例:

// 函数不返回值
void print_message() {
    printf("Hello, World!\n");
}
// 函数不接受参数
int get_input(void) {
    int value;
    scanf("%d", &value);
    return value;
}

总结表格

类别 关键字 描述
整型 int, short, long, long long 用于存储整数
浮点型 float, double, long double 用于存储带小数的实数
字符型 char 用于存储单个字符
空类型 void 表示无值,用于函数返回类型、参数和通用指针

补充说明

  1. 大小和范围:上表中的“典型大小”和“典型范围”是基于大多数现代32位或64位系统的(如Windows, Linux, macOS),C标准只规定了 sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long) 的最小关系,具体大小取决于编译器和目标平台,可以使用 sizeof 运算符来精确获取类型在当前环境下的大小。

    printf("Size of int: %zu bytes\n", sizeof(int));
    printf("Size of double: %zu bytes\n", sizeof(double));
  2. 类型限定符:除了上述基本类型,C语言还提供了一些类型限定符来进一步修饰变量的特性,如 const(常量)、volatile(易变)、restrict( restrict)等,它们与基本数据类型结合使用,但不能单独构成数据类型。

-- 展开阅读全文 --
头像
织梦cms小说网站采集
« 上一篇 01-20
volatile关键字在C语言中到底该如何正确使用?
下一篇 » 01-20
取消
微信二维码
支付宝二维码

目录[+]