zoukankan      html  css  js  c++  java
  • C语言常见类型占用字节数

    前言

    最近笔试经常遇到c语言各类型变量所占字节数的问题,这里做一个总结好了。

    类型

    常见的有char、int、long、short、float、double及指针等.

    字符类型

    这里单只char,char变量在内存中存储的是字符对应的ASCII码值。所以长度也是固定的,为1个字节。

    整数类型

    查了资料发现对各个类型的整数占用字节数是有一个规定的,虽然16位32位或者64位的机子各种类型所占用的长度并不一样。规则如下:

    • short 至少占用2个字节。
    • int 建议为一个机器字长。32位环境下机器字长为4字节,64位环境下机器字长为8字节。
    • short 的长度不能大于 int,long 的长度不能小于 int。

    所以说,short并不一定短,long并不一定短,有可能都和int一样长。

    浮点数(小数)

    C中浮点数有两种,float和double,不像整数,小数的长度始终是固定的,float占用4个字节,double占用8个字节。

    指针

    C中指针即为地址,所以编辑器的寻址空间则是指针的地址范围。所以指针变量在32位机器的寻址空间为2^32,要将所有地址都表示出来则需要为4个字节长度,所以要占用4个字节长度。同理64位的编译器则需要8个字节长度。

    查看所占用的长度

    可以使用sizeof()来查看所占用的长度,如下:

    #include <iostream>
    #include <vector>
    using namespace std;
    
    
    int main(int argc, const char * argv[]) {
        // insert code here...
        
        char *p;
        cout<<"char: "<<sizeof(char)<<endl;
        cout<<"int: "<<sizeof(int)<<endl;
        cout<<"short: "<<sizeof(short)<<endl;
        cout<<"long: "<<sizeof(long)<<endl;
        cout<<"*: "<<sizeof(p)<<endl;
        cout<<"float: "<<sizeof(float)<<endl;
        cout<<"double: "<<sizeof(double)<<endl;
        
        return 0;
    }
    

    输出结果如下:

    char: 1
    int: 4
    short: 2
    long: 8
    *: 8
    float: 4
    double: 8
    

    参考

  • 相关阅读:
    题解 P2810 【Catch the theives】
    2020.11.27 考试题解
    2020.11.25 考试题解
    题解 SP16254 【RMID2
    2020.11.24 考试题解
    2020.11.23 考试题解
    CSP-2020 T3 函数调用
    二维树状数组学习笔记
    题解 P4910 【帕秋莉的手环】
    Python实现向指定IP的目标机器拷贝文件
  • 原文地址:https://www.cnblogs.com/wswang/p/5863824.html
Copyright © 2011-2022 走看看