当前位置:首页 > 内存 > 正文

c语言数组占用内存

  • 内存
  • 2024-05-29 03:52:49
  • 915

一、C语言中如何计算一个数组占内存多少空间?

C语言中数组值的大小等于数组占用内存的字节数。

C语言中有一个size运算符,专门用来检测某个类型或者变量或者数组在内存中占用的空间(字节数),用size来检测直接占用的字节数数组中内存段的编号。

语法规则为:sizeof(x);(也可以写成sizeofx;在没有歧义的情况下)-其中x是类型名、变量名或数组名等,返回x占用的字节数(int类型)。

高级信息:

尺寸使用规则:

这里的基本数据类型是指short、int、long、float、double等简单的内置数据类型,由于它们都与系统有关,所以在不同的系统中其值可能会有所不同,这必须因为在这方面我们尽量不给我们自己的程序的传输带来问题。一般情况下,在32位编译环境下,sizeof(int)的值为4。

2.指针变量大小:

指针变量大小的值与内存大小指针所指向的对象无关,因此MFC消息处理函数使用WPARAM和LPARAM两个参数来传递各种复杂的消息结构(使用结构指针)。

参考来源:-sizeof


二、c语言写单片机程序时用数组时有时加code,问什么虽然不是特别明白,但是根据郭天祥书上的解释:C定义数组时会占用内存空间,而code的意思是编码,它占用的是程序存储空间而不是内存空间。对于这个解释,我个人的理解是,有时候,定义的数组包含的元素越多,数组占用的存储空间就会越大,我们不希望它影响内存,所以可以将其安排到编码中space可以在一定程度上节省内存。这是我个人的理解,希。(我猜你正在看数码管,对吧?)


三、C语言数组和地址问题

1.字符数组c在内存中占用4个字节,为​​,2,0,0

2。强制转换后,整数指针p指向该字符数组的起始位置(在当前情况下,为值为8的地址)。

3、在little-endian格式下,p指向的整数被解释为00000208。该十六进制值(208)对应于十进制值520。

这里的十六进制表示只是为了方便显示。我们都知道,现实中它们都是以二进制存储的,所以我们在学习的时候需要更加灵活。我建议使用调试器亲自查看。比别人说10遍还有效。