c语言数据类型用法_c语言中数据类型是指_c语言数据类型

C 语言中的数据类型可分为如下几种:

这里我们介绍下基本类型,其他几种类型会在后边几个章节中进行讲解。

一、字符类型与整数类型

字符类型或整数类型所占存储空间的字节大小:

类型

Linux 32

Linux 64

char

short [int]

int

long [int]

long long [int]

字符类型 char 在内存中存储的本质与整数类型是相同的,只是存储大小不同。char 类型可以表示的字符集通常是 ASCII 字符集。

实际上,C语言并没有严格规定 short、int、long 的长度,只做了宽泛的限制:short 的长度不能大于 int,long 的长度不能小于 int。而这些类型的具体大小是由各个操作系统及编译器决定的。

下面我们在代码里实测一下在 linux 64 位系统下,每个类型的具体大小:

#include 
int main()
{
  printf("char: %ldn",
         sizeof(char));  // 1
  printf("short: %ldn",
         sizeof(short)); // 2
  printf("int: %ldn",
         sizeof(int));   // 4
  printf("long: %ldn",
         sizeof(long));  // 8
  printf("long long: %ldn",
         sizeof(long long)); // 8
  return 0;
}

整数类型又分为有符号整数和无符号整数。有符号整数可以表示正数、负数和零,而无符号整数只能表示正数和零,使用 与 关键字标识。

整数类型默认是有符号类型,但 char 比较特殊,其默认是 还是 由编译器决定。

#include 
#include 
int main()
{
  /* 有符号或无符号 char */
  printf("char Min: %dn", CHAR_MIN);
  printf("char Max: %dn", CHAR_MAX);
  /* 有符号 char */
  printf("signed char Min: %dn", SCHAR_MIN);
  printf("signed char Max: %dn", SCHAR_MAX);
  /* 无符号 char */
  printf("unsigned char Max: %un", UCHAR_MAX);
  printf("signed short Min: %dn", SHRT_MIN);
  printf("signed short Max: %dn", SHRT_MAX);
  printf("unsigned short Max: %un", USHRT_MAX);
  printf("signed int Min: %dn", INT_MIN);
  printf("signed int Max: %dn", INT_MAX);
  printf("unsigned int Max: %un", UINT_MAX);
  printf("signed long Min: %ldn", LONG_MIN);
  printf("signed long Max: %ldn", LONG_MAX);
  printf("unsigned long Max: %lun", ULONG_MAX);
  printf("signed long long Min: %lldn", LLONG_MIN);
  printf("signed long long Max: %lldn", LLONG_MAX);
  printf("unsigned long long Max: %llun", ULLONG_MAX);
  return 0;
}

$ gcc test.c && ./a.out
char Min: -128
char Max: 127
signed char Min: -128
signed char Max: 127
unsigned char Max: 255
signed short Min: -32768
signed short Max: 32767
unsigned short Max: 65535
signed int Min: -2147483648
signed int Max: 2147483647
unsigned int Max: 4294967295
signed long Min: -9223372036854775808
signed long Max: 9223372036854775807
unsigned long Max: 18446744073709551615
signed long long Min: -9223372036854775808
signed long long Max: 9223372036854775807
unsigned long long Max: 18446744073709551615

二、浮点类型

浮点类型所占存储空间的字节大小:

类型

Linux 32

Linux 64

float

long

12

16

下面我们在代码里实测一下在 linux 64 位系统下,浮点类型的具体大小与范围:

#include 
#include 
int main()
{
  printf("float Size: %ldn", sizeof(float));
  printf("float Min: %en", FLT_MIN);
  printf("float Max: %en", FLT_MAX);
  printf("double Size: %ldn", sizeof(double));
  printf("double Min: %en", DBL_MIN);
  printf("double Max: %en", DBL_MAX);
  printf("long double Size: %ldn", sizeof(long double));
  printf("long double Min: %Len", LDBL_MIN);
  printf("long double Max: %Len", LDBL_MAX);
  return 0;
}

$ gcc test.c && ./a.out
float Size: 4
float Min: 1.175494e-38
float Max: 3.402823e+38
double Size: 8
double Min: 2.225074e-308
double Max: 1.797693e+308
long double Size: 16
long double Min: 3.362103e-4932
long double Max: 1.189731e+4932

三、类型转换

C 语言中有两种类型转换:

#include 
int main()
{
  /* 隐式类型转换 */
  int i = 10;
  float f = 3.14;
  // 隐式将 int 类型转换为 double 类型
  double d = i + f;
  printf("d = %fn", d);
  /* 显式类型转换 */
  double e = 3.1415926;
  // 显式将 double 类型转换为 int 类型
  int g = (int) e;
  printf("g = %dn", g);
  
  return 0;
}

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,永久会员只需109元,全站资源免费下载 点击查看详情
站 长 微 信: nanadh666

声明:1、本内容转载于网络,版权归原作者所有!2、本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。3、本内容若侵犯到你的版权利益,请联系我们,会尽快给予删除处理!