zoukankan      html  css  js  c++  java
  • C、C++数据类型所占字节数

    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位编译器


    char :1个字节
    char*(即指针变量): 2个字节
    short int : 2个字节
    int:  2个字节
    unsigned int : 2个字节
    float:  4个字节
    double:   8个字节
    long:   4个字节
    long long:  8个字节
    unsigned long:  4个字节


    32位编译器


    char :1个字节
    char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)
    short int : 2个字节
    int:  4个字节
    unsigned int : 4个字节
    float:  4个字节
    double:   8个字节
    long:   4个字节
    long long:  8个字节
    unsigned long:  4个字节

    64位编译器

    char :1个字节
    char*(即指针变量): 8个字节
    short int : 2个字节
    int:  4个字节
    unsigned int : 4个字节
    float:  4个字节
    double:   8个字节
    long:   8个字节
    long long:  8个字节

    unsigned long:  8个字节


    下页是一个简单的測试样例(C++):

    执行环境,Windows 7旗舰版 + vc++6.0 + 32位系统

    #include<iostream>
    using namespace std;
    
    void main()
    {
     cout<<sizeof(char)<<endl;  //1
     cout<<sizeof(short)<<endl;  //2
     cout<<sizeof(int)<<endl;  //4
     cout<<sizeof(long)<<endl;  //4
     cout<<sizeof(float)<<endl;  //4
     cout<<sizeof(double)<<endl;  //8
     
     cout<<sizeof(char *)<<endl;  //4
     cout<<sizeof(short *)<<endl; //4
     cout<<sizeof(int *)<<endl;  //4
     cout<<sizeof(long *)<<endl;  //4
     cout<<sizeof(float *)<<endl; //4
     cout<<sizeof(double *)<<endl; //4
    
    
    
    
     //cout<<sizeof(void)<<endl;  //这句无法通过编译,可能是由于void代表空,不包括不论什么东西
     cout<<sizeof(void *)<<endl;  //4(相对于上一句,这句挺好理解的。"void *" 是一个指针)
    }

  • 相关阅读:
    android 服务与多线程
    “产品级敏捷” 的这条路; 逐步的形成一高效的产品开发生态系统
    hdoj 1116 Play on Words 【并查集】+【欧拉路】
    辛星跟您玩转vim第四节之操作文本内容
    UVa 10828 Back to Kernighan-Ritchie 高斯消元+概率DP
    CMMI过程改进反例
    UVA 11077
    Yii 框架 URL路径简化
    交水费一波四折
    雷观(十五):提高生产力和程序员价值的2种方法
  • 原文地址:https://www.cnblogs.com/tlnshuju/p/6819440.html
Copyright © 2011-2022 走看看