• C程序设计(1)-数据类型


    为了刷算法方便,回顾一遍C语言

    https://www.bilibili.com/video/BV1At411g7ou 零基础课程

    基本数据类型(不可再分):

      整型:

      短整型(short)

      整型(int)

      长整型(long)

      无符号整型(unsigned int)

      浮点型:

      单精度(float)

      双精度(double)

      扩展精度(long double)

      字符型(char)

      空值型(void)

    构造数据类型(由多个类型组合而成):

      数组

      结构体(struct)

      公用体(union)

      指针

    对于基本数据类型所占字节数,C标准中没有给出具体规定哪个基本类型对应多少字节,而且其与机器、OS、编译器有关,比如:同样是在32bits的操作系统,VC++的编译器下int类型为占4个字节、而tuborC下则是2个字节。

    所以int,long int,short int的宽度都可能随编译器而异,但有几条铁定的原则(ANSI/ISO制订): 

    • sizeof(short int)<=sizeof(int)

    • sizeof(int)<=sizeof(long int)

    • short int至少应为16位(2字节)

    • long int至少应为32位

    不同位数编译器下的基本数据类型所占的字节数:

    16位编译器:

    short int: 2个字节

    int: 2个字节

    long: 4个字节

    long long: 8个字节

    unsigned int: 2个字节

    unsigned long: 4个字节

    float: 4个字节

    double: 8个字节

    char: 1个字节

    char*(即指针变量): 2个字节 


    32位编译器:

    short int: 2个字节

    int: 4个字节

    long: 4个字节

    long long: 8个字节

    unsigned int: 4个字节

    unsigned long: 4个字节

    float: 4个字节

    double: 8个字节

    char: 1个字节

    char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节;同理64位编译器)


    64位编译器:

    short int: 2个字节

    int: 4个字节

    long: 8个字节

    long long: 8个字节

    unsigned int: 4个字节

    unsigned long: 8个字节

    float: 4个字节

    double: 8个字节

    char: 1个字节

    char*(即指针变量): 8个字节

    机器字长:是指计算机进行一次整数运算所能处理的二进制数据的位数(整数运算即定点整数运算)。机器字长也就是运算器进行定点数运算的字长,通常也是CPU内部数据通路的宽度,现在一般为32位(4个字节)、64位(8个字节),也有16位(2个字节)的。

    在大多数计算机上:

      short int表示2个字节长,short只能修饰int,short int可以省略为short;

      long只能修饰int和double,修饰为long int(可以省略为long)时,一般表示4个字节,修饰long double时,一般表示10个字节;

      unsigned和signed只能修饰char和int,一般情况下,默认的char和int为signed,实型数float和double总是有符号的,不能用unsigned修饰;

      bool型(布尔型,也称逻辑型)数据的取值只能是false(假)或true(真),bool型数据所占的字节数在不同的编译系统中可能不一样,在VC++6.0编译环境中bool型数据占一字节。

      用sizeof(数据类型)可以确定某数据类型的字节长度,例如用下面的语句:
        cout <<”size of int is” <<sizeof(int) <<endl;
        在16位计算机上将输出:
        size Of int is 2

  • 相关阅读:
    【函数】wm_concat包的订制
    【云和恩墨】性能优化:Linux环境下合理配置大内存页(HugePage)
    【技巧】如何使用客户端发布BLOG+如何快速发布微信公众号文章
    【故障处理】队列等待之TX
    【转载】TX
    【转载】Linux磁盘管理:LVM逻辑卷管理
    【索引】Oracle之不可见索引和虚拟索引的比对
    小麦苗微信公众号文章链接地址
    Oracle 11g新特性direct path read引发的系统停运故障诊断处理
    常识之外:全表扫描为何产生大量 db file sequential read 单块读?
  • 原文地址:https://www.cnblogs.com/zimsky/p/12611663.html
Copyright © 2020-2023  润新知