整型大小和范围

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>

int main()

{

//整型变量

  int a=10;

//短整型变量

  short b=20;

//长整型变量

  long c=30;

//长长整型变量

  long long d=40;

  printf("%d ",a);

//%hd:占位符,表示输出一个短整型数据

  printf("%hd ",b);

//%ld:占位符,表示输出一个长整型数据

  printf("%ld ",c);

//%lld:占位符,表示输出一个长长整型数据

  printf("%lld ",d);

//sizeof:不是函数,所以不需要包含任何头文件。计算数字类型在内存中占的字节(BYTE)的大小,返回值为size_t。1B=8bit

//size_t类型在32位操作系统下是unsigned int ,是一个无符号的整数

//格式:sizeof(数据类型);sizeof(变量名);sizeof 变量名

  unsigned int len=sizeof (int);

  printf ("%u ",len);

//将sizeof(a)的运算结果作为printf输出的一个选项

  printf("整型:%d ",sizeof(a));//4=32bit

  printf("短整型:%d ",sizeof(b));//2=16bit

  printf("长整型:%d ",sizeof(c));//4=36bit

  printf("长长整型:%d ",sizeof(d));//8=64bit

/*数据类型        占用空间

short          2字节

int            4字节  

long           window为4字节,linux为4字节(32位),8字节(64位)

long long                     8字节

*/

/*需要注意的是,整型数据在内存中占的字节与所选择的操作系统有关

虽然C语言标准中没有明确规定整型数据的长度,但long类型整数的长度

不能短于int类型,short类型整数长度不能长于int类型(short<=int<=long<long long) 

当一个小的数据类型赋值给一个大的数据类型,不会报错,因为编译器会自动转化。(eg:比如定义一个int类型,接收一个short类型数据,不会报错)

但当一个大的类型赋值给一个小的数据类型,那么就可能丢失高位

*/  

 return EXIT_SUCCESS;   

}

原文地址:https://www.cnblogs.com/wanghong19991213/p/13411800.html