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

99ANYc3cd6
预计阅读时长 16 分钟
位置: 首页 C语言 正文
  1. 整型
  2. 浮点型
  3. 字符型
  4. 空类型

下面我们详细讲解每一类。

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

整型

整型用于存储整数,没有小数部分,根据存储范围大小的不同,C语言提供了多种整型类型。

类型 关键字 描述 典型大小 (字节) 典型范围
基本整型 int 最常用的整型,大小由编译器决定,通常与机器字长相同。 4 -2,147,483,648 到 2,147,483,647
短整型 short short int的简称,保证不大于int 2 -32,768 到 32,767
长整型 long long int的简称,保证不小于int 4 或 8 (-2³¹ 到 2³¹-1) 或 (-2⁶³ 到 2⁶³-1)
双长整型 long long long long int的简称,保证不小于long 8 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
无符号整型 unsigned 可以与以上任何整型组合,表示该类型的变量不能为负数,因此正数范围扩大一倍。 - unsigned int: 0 到 4,294,967,295
有符号整型 signed 默认情况下,所有整型都是有符号的,可以存储正数、负数和零。 - signed int (等同于 int)

修饰符 signedunsigned:

  • signed: 可以存储正数、负数和零。
  • unsigned: 只能存储零和正数。

示例代码:

#include <stdio.h>
int main() {
    int a = 100;
    short b = 32767;
    long c = 123456789L; // L后缀表示long类型常量
    long long d = 123456789012345LL; // LL后缀表示long long类型常量
    unsigned int e = 40000; // 不能为负数
    printf("int a = %d\n", a);
    printf("short b = %d\n", b);
    printf("long c = %ld\n", c); // 注意打印long类型用%ld
    printf("long long d = %lld\n", d); // 注意打印long long类型用%lld
    printf("unsigned int e = %u\n", e); // 注意打印unsigned int类型用%u
    return 0;
}

浮点型

浮点型用于存储带有小数部分的实数,C语言提供了三种浮点类型,精度和范围各不相同。

在c语言中基本的数据类型有
(图片来源网络,侵删)
类型 关键字 描述 典型大小 (字节) 精度 (位数)
单精度浮点型 float 占用内存较少,精度较低。 4 约 6-9 位有效数字
双精度浮点型 double 默认的浮点类型,精度和范围更高。 8 约 15-17 位有效数字
长双精度浮点型 long double 精度和范围通常最高。 8 或 16 通常与double相同或更高

示例代码:

#include <stdio.h>
int main() {
    float f = 3.14159f; // f后缀表示float类型常量
    double d = 3.14159265358979;
    long double ld = 3.141592653589793238L; // L后缀表示long double类型常量
    printf("float f = %.2f\n", f);      // %.2f表示保留2位小数
    printf("double d = %.9f\n", d);     // %.9f表示保留9位小数
    printf("long double ld = %.15Lf\n", ld); // 注意打印long double用%Lf
    return 0;
}

字符型

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

类型 关键字 描述 典型大小 (字节) 典型范围
字符型 char 存储 ASCII 字符或小整数。 1 -128 到 127 (signed) 或 0 到 255 (unsigned)

重要说明:

  • 在C语言中,char 类型本质上是一个小整型,字符在内存中以其对应的 ASCII 码值存储。
  • char 也可以被 signedunsigned 修饰,但默认是signed还是unsigned由编译器决定,为了可移植性,如果你明确需要处理0-255范围的值,最好使用 unsigned char

示例代码:

在c语言中基本的数据类型有
(图片来源网络,侵删)
#include <stdio.h>
int main() {
    char c1 = 'A'; // 用单引号
    char c2 = 65;  // 'A'的ASCII码值是65
    printf("c1 = %c, ASCII = %d\n", c1, c1); // %c打印字符, %d打印其ASCII码
    printf("c2 = %c, ASCII = %d\n", c2, c2);
    return 0;
}

空类型

类型 关键字 描述
空类型 void void 的字面意思是“无类型”或“空类型”,它不能用来定义变量,主要有三个用途:
函数返回值: 表示函数不返回任何值。
函数参数: 表示函数不接受任何参数。
通用指针: void* 可以指向任何类型的数据,但在使用前必须强制转换。

示例代码:

#include <stdio.h>
// 一个不返回任何值的函数
void print_message() {
    printf("This function returns nothing.\n");
}
int main() {
    // 调用void返回类型的函数
    print_message();
    // void指针的示例
    int num = 10;
    void *ptr = &num; // void指针可以指向任何变量
    // 使用void指针前必须强制转换
    int *int_ptr = (int *)ptr;
    printf("Value via void pointer: %d\n", *int_ptr);
    return 0; // main函数的返回值int可以省略,默认为0
}

总结与补充

类别 关键字 特点
整型 int, short, long, long long 存储整数,有signedunsigned之分。
浮点型 float, double, long double 存储实数,精度和范围递增。
字符型 char 存储单个字符,本质上是小整型。
空类型 void 无类型,用于函数返回值、参数和通用指针。

如何确定类型的大小?

你可以使用 sizeof 运算符来查看在你的特定系统和编译器上,每种类型占用的字节数。

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

注意: sizeof 返回的是 size_t 类型,使用 %zu 作为格式化字符串是标准做法。

理解这些基本数据类型是学习C语言的第一步,也是编写高效、正确程序的基础。

-- 展开阅读全文 --
头像
织梦联动标签怎么调用?
« 上一篇 03-14
织梦如何添加顶级导航?
下一篇 » 03-14
取消
微信二维码
支付宝二维码

目录[+]