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

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

C语言中的数据类型是用于声明变量或函数的,它决定了变量可以存储哪种类型的数据,以及可以对它执行哪些操作,基本数据类型是构成复杂数据类型(如数组、结构体、指针等)的基础。

c语言中的基本数据类型包括
(图片来源网络,侵删)

C语言的基本数据类型主要分为三大类:整型、浮点型字符型


整型

整型用于表示整数,即没有小数部分的数字。

类型名称 关键字 描述 典型字节大小 取值范围示例
字符型 char 通常用于存储单个字符(如 'a', '1'),但在底层它本质上是一个小的整型。 1字节 -128 到 127
短整型 short 短整型,其大小不小于 char,不大于 int 2字节 -32,768 到 32,767
整型 int 系统最“自然”的整数大小,通常与机器的字长相同。 4字节 -2,147,483,648 到 2,147,483,647
长整型 long 长整型,其大小不小于 int 4或8字节 4字节同int,8字节则范围更大
长长整型 long long 更长的整型,C99标准引入,保证不小于long 8字节 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

修饰符:signedunsigned

整型默认是 signed(有符号)的,意味着它可以存储正数、负数和零,如果使用 unsigned(无符号)修饰符,则变量只能存储非负数(0和正数),这相当于将正数范围扩大一倍。

  • signed char: -128 到 127
  • unsigned char: 0 到 255
  • unsigned int: 0 到 4,294,967,295 (对于4字节的int)

浮点型

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

c语言中的基本数据类型包括
(图片来源网络,侵删)
类型名称 关键字 描述 典型字节大小 精度和范围
单精度浮点型 float 单精度浮点数,占用空间较小,精度较低。 4字节 约6-7位有效数字
双精度浮点型 double 双精度浮点数,是float的扩展,精度更高,范围更大。 8字节 约15-16位有效数字
长双精度浮点型 long double 长双精度浮点数,提供比double更高的精度(在某些平台上)。 8或16字节 通常比double更高精度

示例:

float price = 19.99f; // 注意:f后缀表示这是一个float常量
double pi = 3.141592653589793;
long double big_number = 1.234567890123456789L; // L后缀表示long double

字符型

字符型专门用于存储单个字符。

类型名称 关键字 描述 典型字节大小
字符型 char 存储 ASCII 或 Unicode 字符,如 'A', 'z', '9', '$'。 1字节

重要概念: 在C语言中,char 类型在本质上是一个小范围的整型,字符在内存中以 ASCII 码(或其他编码)的形式存储,所以你可以对字符进行算术运算。

char c = 'A';
// 'A'的ASCII码是65
int i = c; // i 的值将是 65
c = c + 1; // c 的值将变为 'B' (因为65+1=66,66是'B'的ASCII码)

空类型

void 是一个特殊的数据类型,字面意思是“空的”或“无类型的”,它主要有两个用途:

c语言中的基本数据类型包括
(图片来源网络,侵删)
  1. 表示函数没有返回值

    void print_message() {
        printf("Hello, World!\n");
        // 函数执行完毕,不返回任何值
    }
  2. 表示函数没有参数

    int get_random_number(void) {
        return rand();
    }
    // 使用void明确表示该函数不接受任何参数

void 不能用来声明变量,void v; 是错误的。


总结表格

类别 类型名称 关键字 大小(典型值) 描述
整型 字符型 char 1字节 存储字符或小整数
短整型 short 2字节 短整数
整型 int 4字节 标准整数
长整型 long 4或8字节 长整数
长长整型 long long 8字节 更长的整数
浮点型 单精度 float 4字节 单精度浮点数
双精度 double 8字节 双精度浮点数
长双精度 long double 8或16字节 高精度浮点数
字符型 字符型 char 1字节 存储单个字符
空类型 空类型 void N/A 无类型,用于函数返回值和参数

重要提示:数据类型的“大小”

需要特别注意的是,C语言标准只规定了各种类型大小的相对关系sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)),但没有规定它们的绝对大小int 在一些旧系统或嵌入式系统上可能是2字节,而在现代的64位操作系统上通常是4字节。

要准确知道在你的特定编译器和系统上某个类型的大小,可以使用 sizeof 运算符:

#include <stdio.h>
int main() {
    printf("Size of char: %zu bytes\n", sizeof(char));
    printf("Size of int: %zu bytes\n", sizeof(int));
    printf("Size of float: %zu bytes\n", sizeof(float));
    printf("Size of double: %zu bytes\n", sizeof(double));
    printf("Size of long long: %zu bytes\n", sizeof(long long));
    return 0;
}

%zusize_t 类型的正确格式说明符,sizeof 运算符的结果就是 size_t 类型。

-- 展开阅读全文 --
头像
织梦为何不免费下载?
« 上一篇 今天
织梦如何修改已发布文章的时间?
下一篇 » 今天
取消
微信二维码
支付宝二维码

目录[+]