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
    

    参考

  • 相关阅读:
    初探webpack4--根据模版自动生成HTML
    初探webpack4---简介与常用loader使用方法
    axios请求五种方法
    iview实现国际化
    解决vuex页面刷新导致数据丢失问题
    一步一步搞懂支持向量机——从牧场物语到SVM(下)
    一步一步搞懂支持向量机——从牧场物语到SVM(上)
    set 利用lower_bound实现key索引
    unique & lower_bound C++
    逆元
  • 原文地址:https://www.cnblogs.com/wswang/p/5863824.html
Copyright © 2011-2022 走看看