C 语言数据类型

在 C 编程中,数据类型是变量的声明。这决定了与变量相关的数据的类型和大小。例如,

int myVar;

在此,myVar 是一个 int(整数)类型的变量。int 的大小为 4 字节。


基本类型

下表包含 C 编程中常用的类型,方便快速查阅。

类型 大小(字节) 格式说明符
int 至少 2,通常为 4 %d, %i
char 1 %c
浮点数 4 %f
双精度浮点数 8 %lf
short int 通常为 2 %hd
无符号整型 至少 2,通常为 4 %u
long int 至少 4,通常为 8 %ld, %li
long long int 至少 8 %lld, %lli
unsigned long int 至少 4 %lu
unsigned long long int 至少 8 %llu
有符号字符 1 %c
无符号字符 1 %c
long double 至少 10,通常为 12 或 16 %Lf

int

整数是可以具有零、正数和负数但没有小数位的整数。例如,0-510

我们可以使用 int 来声明一个整数变量。

int id;

在此,id 是一个整数类型的变量。

您可以在 C 编程中一次声明多个变量。例如,

int id, age;

int 的大小通常为 4 字节(32 位)。并且,它可以从 -21474836482147483647 接受 232 个不同的值。


float 和 double

floatdouble 用于存储实数。

float salary;
double price;

在 C 语言中,浮点数也可以用指数形式表示。例如,

float normalizationFactor = 22.442e2;

floatdouble 之间有什么区别?

float(单精度浮点数据类型)的大小为 4 字节。double(双精度浮点数据类型)的大小为 8 字节。


char

关键字 char 用于声明字符类型变量。例如,

char test = 'h';

字符变量的大小为 1 字节。


void

void 是一种不完整类型。它表示“无”或“无类型”。您可以将 void 视为缺失

例如,如果一个函数不返回任何内容,其返回类型应为 void

请注意,您不能创建 void 类型的变量。


short 和 long

如果您需要使用大数值,可以使用类型说明符 long。方法如下:

long a;
long long b;
long double c;

在此,变量 ab 可以存储整数值。而 c 可以存储浮点数。

如果您确定只需要使用一个小整数(范围为 [−32,767, +32,767]),您可以使用 short

short d;

您始终可以使用 sizeof() 运算符检查变量的大小。

#include <stdio.h>      
int main() {
  short a;
  long b;
  long long c;
  long double d;

  printf("size of short = %d bytes\n", sizeof(a));
  printf("size of long = %d bytes\n", sizeof(b));
  printf("size of long long = %d bytes\n", sizeof(c));
  printf("size of long double= %d bytes\n", sizeof(d));
  return 0;
}

signed 和 unsigned

在 C 语言中,signedunsigned 是类型修饰符。您可以使用它们来更改数据类型的存储方式。

  • signed - 允许存储正数和负数
  • unsigned - 只允许存储正数

例如,

// valid codes
unsigned int x = 35;
int y = -35;  // signed int
int z = 36;  // signed int

// invalid code: unsigned int cannot hold negative integers
unsigned int num = -35;

在此,变量 xnum 只能存储零和正值,因为我们使用了 unsigned 修饰符。

考虑到 int 的大小为 4 字节,变量 y 的取值范围为 -231231-1,而变量 x 的取值范围为 0232-1


派生数据类型

从基本数据类型派生的数据类型称为派生类型。例如:数组、指针、函数类型、结构体等。

我们将在后面的教程中学习这些派生数据类型。

  • bool 类型
  • 枚举类型
  • 复杂类型

视频:C 编程中的数据类型

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战