C/C++中基本数据类型所占内存大小 您所在的位置:网站首页 基本数据类型大小 C/C++中基本数据类型所占内存大小

C/C++中基本数据类型所占内存大小

2024-05-07 09:17| 来源: 网络整理| 查看: 265

C/C++中基本数据类型所占内存大小

 C++中不同数据类型所占的字节大小,在不同的操作系统和编译器下,是不同的,一般主要说gcc下,32位或64位系统的,做了个表如下: 

数据类型

32位

64位

取值范围(32位)

char

1

1

-128~127

unsigned char(当byte使用) 

1

1

0~255

short int /short 

2

2

–32,768~32,767

unsigned  short  

2

2

0~65,535

int

4

4

-2,147,483,648~2,147,483,647

unsigned int

4

4

0~4,294,967,295

long int /long

4

4

–2,147,483,648~2,147,483,647

unsigned long

4

4

0~4,294,967,295

long long int/long long

8

8

-9,223,372,036,854,775,808

~9,223,372,036,854,775,807

指针 

4

8

 

float  

4

4

3.4E +/- 38 (7 digits)

double

8

8

1.7E +/- 308 (15 digits)

long double

12

16

 

 

  

注意:    

    1. 求数组大小时,如果数组作为参数传递时,退化为指针,所以sizeof(arr)大小为该系统下指针的大小

    2. 对于C字符串,需要牢记C/C++中一个汉字占两个字节(Linux下3个字节)。

    3. 求struct 或者 class 的大小时候,除了基本的数据类型大小,特别要考虑的是字节对齐问题,如果是C++的还涉及虚函数的虚表问题,需要加上虚表指针的大小,关于内存对齐的问题在别的博客会详细写。

转载自:https://blog.csdn.net/zcyzsy/article/details/77935651



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有