再论数据类型

  • 问题

       数据类型的本质差异是什么?

       为什么会有不同的表示范围?

如上图,每一个变量都表示的范围不同,字节也随之不同 

C语言中的sizeof关键字 

功能:用于获取类型或者变量所占用的内存大小(字节)

用法:

  sizeof(type)                      int main()

                                         {  

  sizeof(variable)                 int s = sizeof (short); 

                                           int v = sizeof s

  sizeof variable                   return 0 ; 

                                           }

实践操作

 

数据类型与内存

- 不同的数据类型(变量)会占用不同大小的内存

- 同一种整形的有符号无符号版本占用相同内存 

类型                          占用内存

char                                1

short                               2

int                                   3

float                                4

double                            5

  •  下面的程序输出什么?

int main()

{

  unsigned u=0;

  char c=0;

  int i=0;

  unsigned short us=0;

  printf("sizeof(u)=%d\n",sizeof(u));

  printf("sizeof(c)=%d\n",sizeof(c));

  printf("sizeof(i)=%d\n",sizeof(i));

  printf("sizeof(us)=%d\n",sizeof(us));

printf("sizeof(int)=%d\n",sizeof(int));

printf("sizeof(unsigned char)=%d\n",sizeof(unsigned char));

printf("sizeof(short)=%d\n",sizeof(short));

return 0;

}

  • C语言的中的奇葩整形(long)

- long在使用不同编译器时,可能占用的内存不同

- long通常占用4字节内存,也可能占用8字节内存

- long long表示整形,固定占用8字节内存

-  long long是long long int 的缩写形式

  • 实践操作

 

 

下面的程序输出什么?

int main()

{

  double d=0;

  float f=0;

  long l=0;

  long long ll=0 ;

  printf("sizeof(d)=%d\n",sizeof(d));   //8

  printf("sizeof(f)=%d\n",sizeof(f));   //4

  printf("sizeof(l)=%d\n",sizeof(l));   //4or8

  printf("sizeof(ll)=%d\n",sizeof(ll));   //8

       

 

数据类型的本质区别

- 因为占用的内存大小不同,所以可表示的范围不同

- 不同类型的数据,在内存中使用不同的表示法

如:

     正整数和负整数的表示法不同

      整数和浮点数的表示法不同

小结

  • 不同的数据类型,占用不同大小的内存
  • 不同的数据类型对于数据的表示法不同
  • sizeof关键字用于获取类型或变量占用的内存字节数
  • long是一种奇葩的整形,占用4字节或者8字节
  • long long是在一个占用8字节内存的整型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值