1,各种变量占据的内存空间

char:1个字节,也可亦作为0-255的数值参与运算

 一般来说,静态存储区的自动赋初值,动态则不自动(貌似也不对,因为非内置变脸的类型,也都调用了默认构造函数进行初始化)

各种类型的sizeof(为size_t类型,其实就是unsigned int)

sizeof是运算符,不是函数,这点和new和delete类似

一个由c/C++编译的程序占用的内存分为以下几个部分
1、栈区(stack),由编译器自动分配释放,存放函数的参数值、返回值、返回地址,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap),一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。
3、全局区(静态区)(static),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域(.data),未初始化的全局变量和未初始化的静态变量在相邻的另一块区域(.bss)。程序结束后由系统释放。
4、文字常量区—常量字符串就是放在这里的(.rodata)。程序结束后由系统释放。
5、程序代码区—存放函数体的二进制代码(.text)。

栈是向着低地址方向增长,堆是向着高地址方向增长

sizeof(int):4;
sizeof(long):4;
sizeof(longlong):8;
sizeof(short):2;
sizeof(char):1;
sizeof(float):4
;sizeof(double):8;
sizeof(指针):8
以上随着操作系统的不同,可能略有差异
在64位系统中,sizeof(指针)为8
再windows环境下,汉字使用gbk编码,占用两个字节
再linux环境下,汉字是哟功能utf8编码,占用3个字节
sizeof运算结果

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-08-08
  • 2021-11-09
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-11-30
  • 2021-12-24
  • 2021-11-23
  • 2021-07-28
  • 2021-05-31
相关资源
相似解决方案