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

  • 相关阅读:
    简体繁体互译代码段:
    require.js使用baseUrl + paths导入文件配置的3种方法
    vue + vue-router + vue-resource 基于vue-cli脚手架 --->笔记
    解决webstorm卡顿问题
    js 函数闭包内部返回函数体调用方法难点解答
    java学习笔记之位运算符
    java集合类学习笔记之LinkList
    java集合类学习笔记之ArrayList
    java学习笔记之对象序列化
    springboot集成巨杉数据库
  • 原文地址:https://www.cnblogs.com/tlnshuju/p/6819440.html
Copyright © 2011-2022 走看看