HeadFirstC笔记_4 使用多个源文件:分而治之

简明数据类型指南
char 字符在计算机的存储器中以字符编码的形式保存,字符编码是一个数字,因此在计算机看 来, A 与数字65完全一样。65是A的ASCII码
int 如果你要保存一个整数,通常可以使用 int 。不同计算机中 int 的大小不同,但至少应该有16 位。一般而言, int 可以保存几万以内的数字
short 但有时你想节省一点空间,毕竟如果只想保存一个几百、几千的数字,何必用 int ?可以用 short , short 通常只有 int 的一半大小
long 在某些计算机中, long 的 大小是 int 的两倍,所以可以保存几十亿以内的数字;但大部分计算机的 long 和 int 一样大, 因为在这些计算机中 int 本身就很大。 long 至少应该有32位。
float float是保存浮点数的基本数据类型 。平时你会碰到很多浮点数,比如一杯香橙摩卡冰乐有多 少毫升,就可以用 float 保存
double 如果想让计算结果精确到小数点以后很多位,可以使用 double 。 double 比 float 多占一倍空间,可以保存更大、更精确的数字
勿以小杯盛大物
赋值时要保证值的类型与保存它的变量类型相匹配。 不同数据类型的大小不同,千万别让值的大小超过变 量。
 short 比 int 的空间小, int 又比 long 小。所以下面的代码是可行的。
   
   
   
  1. short x = 15;
  2. int y = x;
  3. printf("y 的值是 %i\n", y);
但是反过来,比如你想在 short 变量中保存 int 值,就 不行。
     
     
     
  1. int x = 100000;
  2. short y = x;
  3. print("y 的值是 %hi\n", y); //%hi用来格式化
有时,编译器能发现你想在小变量中保存大值, 然后给出一条警告,但大多数情况下编译器不会 发现。
这时当你运行代码,计算机无法在 short 变量中保存100 000。计算机能装多少0、1就装多 少,而最终
保存在变量 y 中的数字已面目全非。

使用类型转换把float值存进整型变量
       
       
       
  1. int x = 7;
  2. int y = 2;
  3. //float z = x / y;
  4. //printf("z = %f\n", z);
  5. float z = (float)x / (float)y;
  6. printf("z = %f\n", z);
因为 x 和 y 都是整型,而两个整型相除, 结果是一个舍入的整数,在这个例子中z= 3 。 如果希望两个整数 相除的结果
是浮点数,应该先把整数保存到 float 变量 中,做法就是使用类型转换临时转换数值的类型。
(float) x会把 int 值转换为 float 值,计算时就可以把变量当成浮点数来 用。
事实上,如果编译器发现有整数在加、减、乘、除浮点数,会自动替 你完成转换,因此可以减少代码中显式类型转换的次数:
         
         
         
  1. float z = (float)x / y; // y会被编译器自动转换成float

数据类型前的关键字
unsigned
用unsigned修饰的数值只能是非负数。由于无需记录 负数,无符号数有更多的位可以使用,因此它可以保
存更大的数。unsigned int可以保存0到最大值的数。 这个最大值是int可以保存最大值的两倍左右。还有
signed关键字,但你几乎从没见过,因为所有数据类型 默认都是有符号的。
         
         
         
  1. unsigned char c; // 保存0到255的数
long
你可以在数据类型前加long,让它变长。long  int是加长版的int;long int可以保存范围更广的数 字;
long long比long更长;还可以对浮点数用long。
          
          
          
  1. long double d;
  2. long long l; //注意:只有C99和C11标准支持long long。
代码示例:
           
           
           
  1. # include <stdio.h>
  2. float total = 0.0;
  3. short count = 0;
  4. short tax_percent = 6;
  5. float add_with_tax(float f) {
  6. float tax_rate = 1 + tax_percent/100.0; // 有了.0,计算就会以浮点数进行,否则表达式会返回整数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值