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

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

原文链接: https://www.cnblogs.com/0patrick/p/13901909.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

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

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/204590

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午9:54
下一篇 2023年2月12日 下午9:55

相关推荐