c语言 二维数组 内存中0行首地址所占内存空间为什么比0行首元素地址所占内存空间小?

数组A中,每个元素A[i,j]的长度均为32个二进位,行下标从-1到9,列下标从1到11,从首地址S开始连续存放主存储器
数组A中,每个元素A[i,j]的长度均为32个二进位,行下标从-1到9,列下标从1到11,从首地址S开始连续存放主存储器中,主存储器字长为16位.求:   (1)存放该数组所需多少单元?   (2)存放数组第4列所有元素至少需多少单元?   (3)数组按行存放时,元素A[7,4]的起始地址是多少?   (4)数组按列存放时,元素A[4,7]的起始地址是多少? 【大连海事大学 1996 四、1 (6分)】   【参考答案】   每个元素32个二进制位,主存字长16位,故每个元素占2个字长,行下标可平移至1到11.   (1)242 (2)22 (3)s+182 (4)s+142求详细介绍
(1) 数组中一共有11*11=121个元素,总共占字长:121*2(每个元素2个字长)=242(2) 第四列有11个元素,所需单元:11*2(每个元素字长)=22(3) a[7,4] 实际上就是第9行第4列!该元素起始地址:s+((9-1)*11+(4-1))*2=s+182(9-1 ) * 11 + (4-1) 是在该元素之前的元素个数 ,*2就是每个元素占2个字长该元素地址就等于 起始元素地址+在该元素之前元素所占的地址空间(4) 这个与3是类似的,只是计算该元素之前的元素个数 的方法不一样!
我有更好的回答:
剩余:2000字
与《数组A中,每个元素A[i,j]的长度均为32个二进位,行下标从-1到9,列下标从1到11,从首地址S开始连续存放主存储器》相关的作业问题
公式是这样的:SA+((i-1)*10+(j-1))*3.这样看好了:A[5,8]总共5行,其中第5行只有8个元素,前4行都是10个元素,这样不难理解(i-1)*10了,为什么要j要-1呢,因为第一个元素的地址是SA,第二个的是SA+1*3.依次类推,公式SA+((i-1)*10+(j-1))*3就是表示在第一个元素的
计算阿,a(1,1)的起始地址是sa+0,按行存储,前7行有7*10=70个元素,占用70*3=210个字节.所以a(8,1)地址是sa+210,a(8,5)再加上4*3=12个字节,结果是sa+222,选C.
数组的首个元素也就是数组的首地址是A[0][0],那么A[8][5]就是第9行的第6列,一个元素三个字节,那么一行(J最大为10,就是11列)33个字节,前8行8*33,再加上第9行前5个3*5,结果就是:(11*8+5)*3;但是很显然答案里边没有这个.再来分析一下:“设I从1变化到8,J从1变化到10”,这句话貌似
J是从0开始的 ,所以实际的位置应该加1,数组嘛~~都是从零开始的,第一个数是0,第二个是1
#include #include void sw(int *x,int n){int i,t;for(i=0;i 再问: x=(int *)malloc(n*4); 是什么意思啊?如果不要会怎么样?
呵呵,你还没弄清楚数组的内存排列呢,a[4][6]应该是这样的有四个数组,每个数组6个.就是a答案.编译器必需知道第二个数字以逐步分配内存.所以可以第一个数字为空,即a[][6],每次分配6,大不了她死循环的分配内存,但是如果第二个数字为空,即a[4][],那么第一次分配
每个元素是 A[p,d]; p=1...8 d=3...10 ;数组最多有64个元素,每个元素是3个字节,我觉得是192个字节. 再问: 答案是270,我就是不知道怎么来的,所以才请各位高手帮帮忙,解释一下答案是如何来的! 再答: 答案是错了吧
#include #define k 3int main(){//int k=3;int arr[k][k];int i,j,sum=0;for(i=0;i
随便写的,你看合适不#include "stdio.h"struct node{}a[100];void main(){int i,j,k,n,b[100],printf("输入数字个数:");scanf("%d",&n);for(i=0;i0)
Cstatic型数组不进行初始化时,如果是数值类型数组(如整型、实型)默认值为0;如果是字符型数组默认值为空字符’\0’(ASCII码为零的字符). auto型数组不进行初始化时,编译器不为其自动指定初始值.其初始值为系统分配给数组各元素的内存单元原来的值,这个值是不可预知的.
打我电啊打我的
这个应该是没问题的 如果不行可以找个中间变量y@for(links:@gin(y); x3=y/100);
var arr=[0,1,2,3,4,5,6,7,8,9];var count=0;//偶数量var sum=0;//偶数和for(var i=0;i
A = rand(1,50);id = find(A>0.5 & A
数组下标都是从0开始的 a[3][5]表示三行五列的数组行下标为0、1、2共三行列下标为0、1、2、3、4共五列所以行下标上限为2,列下标的下限为0
#include int search(int list[],int n,int x){\x09\x09for(i=0;i
#include&&stdio.h&#include&&stdlib.h&#include&&time.h&bool&isprime(int&n)&&&&&&&&nC语言中如何计算一个数组占内存多少空间_百度知道
C语言中如何计算一个数组占内存多少空间
我有更好的答案
在可见数组定义时用sizeof运算符:int a[]={2,3,4}j;int b=sizeof(a);
采纳率:75%
首地址由数组名表示,也是0元素的地址。若有: int a[10];则:a与&a[0]都表示a数组所占存储空间的起始地址
int var[] = {0, 1, 2, 3, 4};计算整个数组的内存空间sizeof(a);计算数组元素的个数:sizeof(a)/sizeof(int);
为您推荐:
其他类似问题
您可能关注的内容
内存的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。1、 设有一个二维数组A[10][20],按行存放于一个连续的存储空间中,A[0][0]的存储地址是200,每个数组元素_百度知道
1、 设有一个二维数组A[10][20],按行存放于一个连续的存储空间中,A[0][0]的存储地址是200,每个数组元素
我有更好的答案
int a[10][20];p=&a[0][0]=200;在c语言中整型占用2个字节存储空间,java中占用4个字节存储空间,根据他们占用空间情况和首地址你可以推算出任何一个元素的地址。
采纳率:26%
你没写完问题吧
什么意思?
为您推荐:
其他类似问题
二维数组的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。以下试题来自:
单项选择题二维数组A[0…8][0…9],其每个元素占2字节,从首地址400开始,按行优先顺序存放,则元素A[8,5]的存储地址为(
)。A.570B.506C.410D.482
为您推荐的考试题库
你可能感兴趣的试题
1A.编译系统B.数据库C.操作系统D.数据库管理系统2A.逻辑结构B.物理结构C.概念结构D.层次结构3A.509B.-2C.-3D.2534A.文件服务器集中管理共享文件B.工作站按权限对文件读写操作C.文件服务器为用户文件安全与保密提供控制方法D.文件服务器很重要但不是NOS必须提供的5A.系统物理结构B.系统高层软件C.传输介质D.服务器类型
热门相关试卷
最新相关试卷}

我要回帖

更多关于 二维数组动态分配内存 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信