1. 在c语言中,每一个数组元素的内存是2个字节吗跪求!!!
当然不一定了,看你数组的类型了
char a[8] //每一个元素占一个字节
int i[8] //每一个元素占2个字节
每一个元素的大小就是数组类型的大小
2. vb一个二维数组占用几个字节
任何数据类型的数组都需要 20 个字节的内存空间,加上每一数组维数占 4
个字节,再加上数据本身所占用的空间。数据所占用的内存空间可以用数据元数目乘上每个元素的大小加以计算。例如,以 4 个 2 字节之 Integer
数据元所组成的一维数组中的数据,占 8 个字节。这 8 个字节加上额外的 24 个字节,使得这个数组所需总内存空间为 32 个字节。
包含一数组的 Variant 比单独的一个数组需要多 12 个字节。
3. 为什么每个 数组元素占 2 个字节的内 存单元
lz
你好
首先题目说的是按列优先
那么就是说优先存储列
简单地说,就是以下的存储方式:
a[0,0]
->
a[1,0]
->
a[2,0]
->
a[3,0]
->
a[4,0]
->
a[5,0]
a[0,1]
->
a[1,1]
->
a[2,1]
->
a[3,1]
->
a[4,1]
->
a[5,1]
……
a[0,6]
->
a[1,6]
->
a[2,6]
->
a[3,6]
->
a[4,6]
->
a[5,6]
那么按照这中存储方式,因为a[5,5]的列标为5,那么它前面有0~4
共有5列
每一列6个元素
也就有5*6=30个元素
再加上列表为5的列中,含有0~5(航标是5)
共有6个元素
,
但是排除a[5,5]本身
就只有5个元素
也就是30+5=35个
每一个占5个字节
因此a[5,5]的地址为:
1000
+
35
*
5
=
1175
希望能帮助你哈
4. 数组的存储方式。
数组就是在内存中开辟一块连续的、大小相同的空间,用来存储数据。
连续:内存地址是连续的。如a是首地址,a+1就是第二个数据元素的地址,a+2是第三个。。。
大小相同:指每个数组元素所占的空间大小是相同的。((a+i)-(a+i-1)=定值 是多少?)
如: int a[]={1,2,3,4};
示例:
a a+1 a+2 a+3
1 2 3 4
a[0] a[1] a[2] a[3]
注意:数组名不能被赋值,因为它是个常量值。代表数组的首地址。
5. c关于数组所占内存大小问题
在C++中可以用string类保存字符串。
在C中,可以通过malloc()和realloc()配合动态分配存储空间,例如:
//---------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
char *getline(void) /*读取一个以回车结尾的字符串,保存在动态分配的空间中,并返回这个字符数组的首地址*/
{
char b,*a=NULL;
int ln=0;
while ((b=getchar())!='\n')
{
a=(char *)(a?realloc(a,sizeof(char)*(ln+1)):malloc(sizeof(char)));
a[ln++]=b;
}
if (a) {
a=(char *)realloc(a,sizeof(char)*(ln+1));
a[ln]='\0';
}
return a;
}
int main(void)
{
char *str;
printf("%s",str=getline());
free(str); /*由于str指向的空间是动态分配的,所以要用free()函数将其释放*/
return 0;
}
//---------------------------------------------------------------------------
6. 字符串数组中每个元素的内存空间是多大
你的字符串数组是什么样的,贴出来看看,不知道你的元素类型
string是类,它的大小是16字节
一般通常说的字符串是char *,它的大小是4字节
所以让你说清楚,否则怎么可能知道?
@@-----为什么能支持可变长度呢?--------
因为string类的成员变量有一个字符串char *型的指针,指向它的内容字符串,这块字符串所在的内存并不在这16字节里,而是其他地方,所以无论多长都OK。
7. C语言中如何计算一个数组占内存多少空间
首地址由数组名表示,也是0元素的地址。
若有: int a[10];
则:a与&a[0]都表示a数组所占存储空间的起始地址