数组占用的存储空间 C语言中如何计算一个数组占内存多少空间
一、C语言中如何计算一个数组占内存多少空间
C语言中数组的sizeof值等于数组所占用的内存字节数。
C语言中有一个专门用于检测类型或变量或数组在内存中所占有的空间(字节数)的操作符sizeof,用sizeof可以直接检测出数组在内存占有的字节数。
语法规则是:sizeof(x);(识别没有歧义时也可写成sizeof x;)——其中x是类型名、变量名或数组名等,返回x所占字节数(int型)。
扩展资料:
sizeof的使用规则:
1、基本数据类型的sizeof:
这里的基本数据类型指short、int、long、float、double这样的简单内置数据类型,由于它们都是和系统相关的,所以在不同的系统下取值可能不同,这务必引起我们的注意,尽量不要在这方面给自己程序的移植造成麻烦。一般的,在32位编译环境中,sizeof(int)的取值为4。
2、指针变量的sizeof:
指针变量的sizeof值与指针所指的对象没有任何关系,正是由于所有的指针变量所占内存大小相等,所以MFC消息处理函数使用两个参数WPARAM、LPARAM就能传递各种复杂的消息结构(使用指向结构体的指针)。
参考资料来源:百度百科-sizeof
二、数组占几个字节的空间
在定义字符数组用字符串常量进行初始化时,系统会自动在结尾加'\0'做结束标志,所以数组array所占的空间为6个字节。
所谓数组,是有序的元素序列。[若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。
用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便,把具有相同类型的若干元素按无序的形式组织起来的一种形式。这些无序排列的同类数据元素的集合称为数组。
特点
1、数组是相同数据类型的元素的集合。
2、数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。
3、数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。
以上内容参考:百度百科-数组
三、数组占多大内存
数组x在内存中所占字节数为20。
数组在定义的时候就已经分配了内存,由于定义的数组x的空间长度为5,因此数组x在内存中所占用的字节数为4*5也就是20个字节。
另外,数组初始化int x[5]={0,2,4},是将数组前三个元素也就是x[0],x[1],x[2]依次赋值为0,2,4,而后面两个元素是赋值为0,并非没有给它们分配空间。
扩展资料
C语言中数组初始化分为下面几种情况:
int array[10]={0,1,2,3,4,5,6,7,8,9};//定义数组的同时为数组的成员初始化值。
int array[10]={3,7,9};//将数组的前三个数赋值,其余元素置为0。
int array[10]={0};//将所有的数都赋值为0。
int array[]={1,2,3,4,5};//由定义的数组元素确定数组的长度。
int array[10];//如果只定义了数组,那么赋值时只能给元素逐个赋值,不能给数组整体赋值。
参考资料来源:百度百科-数组
四、数组有多长,占用多少字节空间
在定义字符数组用字符串常量进行初始化时,系统会自动在结尾加'\0'做结束标志,所以数组array所占的空间为6个字节。
所谓数组,是有序的元素序列。[若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。
用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便,把具有相同类型的若干元素按无序的形式组织起来的一种形式。这些无序排列的同类数据元素的集合称为数组。
特点
1、数组是相同数据类型的元素的集合。
2、数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。
3、数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。
以上内容参考:百度百科-数组