vlambda博客
学习文章列表

C语言速查手册:数据类型(Data Types)

数据类型就像盒子一样存储物体,数据的类型决定了数据的存储大小。在C语言中,概括起来主要有如下四类数据类型:

  • 基本数据类型(Basic types):主要是整数类型和浮点数类型。

  • 枚举数据类型(Enumerated types):主要是被定义成离散型的整数值。

  • 空类型(Void types):表明没有可用的值。

  • 派生类型(Derived types):主要是指针类型、数据类型、结构体类型、共用体类型和函数类型。

但是根据不同的系统位数,数据存储大小会存在一些区别,具体平台可以参考下表:

如果要准确得到某个平台准确的数据存储大小,可以使用sizeof(type)获取,具体参考下面的程序。

#include <stdio.h>
int main(){ printf("data size : \n"); printf("char: %d\n", sizeof(char)); printf("short: %d\n", sizeof(short)); printf("int: %d\n", sizeof(int)); printf("unsigned int: %d\n", sizeof(unsigned int)); printf("long: %d\n", sizeof(long)); printf("unsigned long: %d\n", sizeof(unsigned long)); printf("long long: %d\n", sizeof(long long)); printf("float: %d\n", sizeof(float)); printf("double: %d\n", sizeof(double));      printf("char*:         %d\n", sizeof(char*));
      return 0;}


在C语言中我们还可以给标准的数据类型取个别名,这里可以使用typedef关键字来定义一个新的类型。typedef关键字使用规则如下:

typedef 原始数据类型名 新定义数据类型名


对于不同的整数类型可能大小不同,如果我们通过如下定义,就可以很直观的知道相应的类型大小,还有结构体类型也常使用此关键字。

typedef int int32typedef short int16

有两点需要特别注意:

  • typedef可以声明各种类型名,但不能用来定义变量;

  • typedef只是对已经存在的类型增加一个类型名,而没有创造新的类型;

更多精彩,请关注Will的大食堂。