c语言数据类型

上一篇 / 下一篇  2012-11-14 16:46:08 / 个人分类:c语言

变量的三个属性:作用域、链接属性和存储类型。
这三个属性决定了一个变量的“可视性”(它可以在什么地方可以使用)和“生命期”(它的值将保持多久)

1、基本数据类型
  c语言中,仅有四种基本数据类型-整形、浮点型、指针和聚合类型(数组和结构)
  其他的类型都是从这4种基本类型的某种组合派生而来的。
 
    1.1整型家族:
     字符、短整型、整型、长整型,它们都分为有符号和无符号两种版本。
     长整型至少应该和整型一样长, 而整型至少应该和短整型一样长。
      short int至少16位,long int至少32为。缺省的int究竟是16位还是32位,或是
     其他值, 由编译器设计者决定。
     一、整型字面值
        它属于家族9种不同类型中的哪一种呢?
        字面值后面添加一个后缀来改变却行的规则:
        在整数字面值后面添加字符L或l,可以是这个整数被解释为long整型值,
        字符U或u则把数指定为unsigned整型值
        如果在一个字面后面添加这两组字符终端各一个,它就被解释为unsigned long整型值。
        字面值可以用十进制、八进制(以0开头)、十六进制(以0x开头)
        字面值可能是int,long,unsinged long.缺省情况下,它是最短类型但能完整容纳这个值。
     二、枚举类型
         枚举(enumerated)类型就是指它的值为符号常量而不是字面值的类型,它们以下面这种形式
         声明:
         enum Jar_type{CUP,PINT,QUART,HAL_GALLOON,GALLON};
         这条语句声明了一个类型,称为Jar_Type.
         这种类型的变量按下列方式声明:
         enum Jar_type milk_jug, gas_can,medicine_bottle;
         两条语句可以组合成下面的样子:
         enum{CUP,PINT,QUART,HAL_GALLOON,GALLON}milk_jug, gas_can,medicine_bottle;
       
         这种类型的变量实际上是以整型的方式存储,这些符号名的实际值都是整型值。
         cup 是0, PINT是1,以此类推。也可以为这些符号指定特定的整型值。
         只对部分符号名用这种方式进行赋值也是合法的。如果 某个符号名未显示指定一个值,
         那么它的值就比前面一个符号名的值大1。
         提示:符号名被当做整型常量处理, 声明为枚举类型的变量实际上是整数类型。
         意味着可以给Jar_Type类型的变量赋诸如-623这样的字面值,也可以把HALF_GALLON这个值
         赋值给任何整型变量。但是要避免这种方式使用枚举,因为把枚举变量通整数无差别地混合
         在一起使用,会削弱它们值的含义。
   1.2浮点类型
    诸如3.14259,并非整数,6.023*10000000000000000000000000000000000
    远远超出了计算机整数所能表达的范围
    这样的数值无法按照整数存储。
    但是它们可以用浮点数的形式存储。
    它们通常以一个小数以及一个以某个假定数为基数的指数组成。
    浮点数家族包括float、double和long double类型。
    通常, 这些类型分别提供单精度、双精度以及在某些支持扩展
    精度的机器上提供扩展精度。
    ANSI标准仅仅规定long double至少和double一样长,而double
    至少和float一样长。同时规定了一个最小范围:所有浮点型至少
    能够容纳从10的-37到10的37之间的任何值。
 
    浮点数字面值总是写成十进制的形式,它必须有一个小数点或一个指数,
    也可以两者都有。
    3.14159    1E10     25.    .5      6.023e23
  
   浮点数字面值在缺省情况下都是double类型的, 除非它的后面跟一个L
   或l表示它是一个long double类型的值。或者跟一个F或f表示它是一个
   float类型的值。
 
未完

TAG:

 

评分:0

我来说两句

Open Toolbar