现在的位置: 首页 > 综合 > 正文

02-C数据类型

2014年09月05日 ⁄ 综合 ⁄ 共 2629字 ⁄ 字号 评论关闭

概要
1, 关键字
    int, short, long, unsigned, char, float, double, 
    _Bool, _Complex, _Imaginary
2, sizeof
3, scanf()
4, 基本数据类型
5, 整数类型与浮点数类型的区别
6, 常量, 变量
7, printf(),scanf()读写各种类型数据的值

一, 变量 与 常量 数据

1, 数据 

    承载信息的数字与字符

2, 常量

    在程序使用之前预先设定,
    并在整个运行过程中没有变化
    如, 1, 1.2

3, 变量

    在程序运行过程中, 可能变化或被赋值
    如, int num;

4, 区别

    程序执行过程中是否能变化与指定

二, 基本数据类型

1, 数据类型
    (1) 数字
    (2) 字母(字符)
2, 区分数据类型
    (1) 常量
        通过书写
        如: 12 是整数, 12.3 是浮点数
    (2) 变量        
        通过声明语句中指定的类型.
3, 相关数据类型关键字
   K&R关键字       C90关键字   C99关键字
    int                     signed          _Bool
    long                  void              _Complex    (复数)
    short                                     _Imaginary  (虚数)
    unsigned
    char
    float
    double

三, 整数类型(integer) 与 浮点数类型(float-point)

1, 整数和浮点数的区别
    (1) 对于人      -> 书写
    (2) 对于计算机  -> 存储方式
2, 整数
    (1) 没有小数部分
    (2) 以二进制补码存储
3, 浮点数
    (1) 有小数部分
    (2) 对应数学中的实数(real number)
    (3) 存储: 符号 + 小数部分 + 指数部分
    (4) 实际值的近似值, 因为任意区间内都存在无穷多个实数.
    (5) 运算比整数慢

四, C数据类型

1, int类型

    (1)各种整数类型的区别:数值的范围, 以及能否取负数
    (2)一般地, int类型存储在计算机的一个字中
        A. 字长16位, 则int类型占16位
        B. 字长32位, 则int类型占32位
    (3)int类型是有符号的整数
    (4)声明int变量
        int erns;
        int hogs, cows, goats;
    (5)初始化变量
        初始化(initialize)变量 就是 为变量赋一个初始值
        声明语句为变量创建,标定存储空间,以及制定初始值
            int num; // 分配存储空间
            int num = 1; // 分配存储空间并赋值
    (6)八进制与十六进制常量
        八进制: 0123, 前缀 零
        十六进制: 0x123, 前缀 0x
    (7)打印int值
        printf("%d", num);
        格式说明符(format specifier)
        %d  : 十进制
        %o  : 八进制, 小写字母o
        %X : 十六进制
        %#o %#X : 带前缀

2, 其他整数类型

    (1)short int (简写 short)  
        有符号类型, 可能比int类型占用更少的存储空间
    (2)long int (简写 long)
        有符号类型
    (3)long long int (简写 long long)
    (4)unsigned int (简写 unsigned)
        用于只是用非负值的场合
    (5)unsigned long int (简写 unsigned long)
    (6)unsigned short int (简写 unsigned short)
    (7)unsigned long long int (简写 unsigned long long)
    (8)signed 可以与任何有符号类型一起使用

3, 使用多种整数类型的原因

4, long 常量 和 long long 常量

   整型常量通常被视为 int类型
   (1)整型常量过大
    如果值过大, 编译器会使用 unsigned int
    如果还不行, 编译器会依次试用 
        long, unsigned long, long long, unsigned long long 
   (2)整型常量过小 
    即 把较小的常量作为 long类型
    可以使用 L 后缀
    如 long num = 1L;

5, 打印 short, long, long long, unsigned 类型

    (1) %u  --> unsigned int         
    (2) %ld --> long
    (3) %lx --> 十六进制长整型
    (4) %lo --> 八进制长整形

6, char类型

    (1) 存放 字母 标点符号
    (2) 实际存储与整数一样
    (3) 为了处理字符, 计算机使用一种数字编码, 用特定的整数表示特定的字符
    (4) C把一个字节定义为char类型使用的位数
    (5) 如果不是使用ASCII作为基本字符集的平台,
        一个字节应当看做是 16位 或 32位

7, char类型常量

    'A' 65

8, 转义字符

    \a      警报
    \b      退格
    \n      换行
    \r      回车
    \\      反斜杠
    \'      单引号
    \"      双引号

9, _Bool类型

    (1) 占一位
    (2) 值: true, false
    (3) true->1, false->0

10, float, double, long double

    (1) 指数计数法
        数字    指数计数法
        100     1.0E2
        0.001   1.0E-3
    (2) float
        A. C标准规定, 必须至少能表示6位有效数字
        B. 通常用32位来存储, 8位表示指数及符号,24位表示尾数
    (3) double
        64位, 多出的32位全部用来表示尾数部分

11, 浮点常量

    (1) 包含小数点的一个带符号的数字序列
        如: 1.23, 1.23E3, .23, 1., 1E-1
    (2) 默认情况下, 编译器将浮点常量当做double类型
    (3) 使用F将指定浮点常量为 float型
    (4) 2的幂, 用P表示
        0X1.0P2 == 4.000000

12, 打印浮点值

    (1) %f  -> 十进制  float 和 double
    (2) %e  -> 打印指数计数法的数字
    (3) %lf -> long double

13, 浮点值的上溢和下溢


五, 刷新输出

printf()函数何时真正把输出传递给屏幕?
1, printf()语句将输入传递给缓冲区(buffer)
2, 缓冲区在以下情况下传递给屏幕
    (1) 缓冲区满
    (2) 遇到换行符
    (3) 需要输入

抱歉!评论已关闭.