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 *" 是一个指针)
    }

  • 相关阅读:
    EJB究竟是什么,真的那么神奇吗??
    使用GDAL图书馆RPC校正问题
    使用python写appium用例
    IOS_多线程_ASI_AFN_UIWebView
    android集成apk对一些问题经常遇到系统
    ajax j跨域请求sonp
    11gR2更换OCR和VOTE
    nyoj 47 江 河问题 【贪婪】
    JavaScript实现的购物车效果-效果好友列表
    Cocos2d-x学习笔记(五岁以下儿童) 精灵两种方式播放动画
  • 原文地址:https://www.cnblogs.com/tlnshuju/p/6819440.html
Copyright © 2011-2022 走看看