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

内存中存放(内存中存放的既有代码又有数据吗)

  • 内存
  • 2024-06-18 07:59:41
  • 2539

一、为什么数组在内存中所占的字节数是20字节

数组x在内存中占用的字节数为20字节。

由于初始化时数组的大小声明为10,并且1个int类型的变量占用2个字节,那么10个int类型的变量占用20个字节。

在C中声明数组,需要指定元素类型和元素数量,如下:

typearrayName[arraySize];

这称为一维数组。数组的大小必须是大于零的整数常量,并且类型可以是任何有效的C数据类型。

高级信息:

使用数组的规则:

1您只能设置几个尽早重视要素当{}中的值的数量小于元素的数量时,仅对元素的第一部分赋予值。例如:staticinta[10]={0,1,2,3,4}表示只有a[0]~a[4]这五个元素被赋值,接下来的五个元素自动被赋值为0。

2.值一次只能赋给一个元素,而不能赋给整个数组。例如,将值1分配给所有10个元素只能写为:staticinta[10]={1,1,1,1,1,1,1,1,1,1}但不能写为:staticinta[10]=1;请注意:这在C和C#中是正确的,但并非在所有涉及数组的地方都是如此。

3如果没有为初始化数组分配初始值,则所有元素的值为0。

4如果为所有元素分配了值,则数组元素的数量不需要在数组描述中给出。例如:staticinta[5]={1,2,3,4,5};可以写成:staticinta[]={1,2,3,4,5}可以在程序执行期间对数组进行操作。目前,循环语句可以与scanf函数一起使用,一次给数组元素赋值。

参考资料:

-数组


二、急求!!(masm)在以DATA为首地址的内存数据段中,存放20个16位带符号数,找出其中最大和最小数假设:CODE,DS:DATAS
;----------------------------------------------------------------
数据段
MAXDW?
MINDW?
DataW-45+98,49,123,-239,654
;原海报在这里请完成20个大厅
;写太多了,百度认为是垃圾,不显示
NEQU($-DATA)/2;请原谅电压发送的数据量
DATASENDS
;--------------------------------------------------------------
代码段
开始:
MOVAX,DATAS
MOVDS,AX
CALLSEACH
退出:
MOVAX,4C00H
INT21H
;-------------------
SEACHPROC
MOVBX,0
MOVCX,N
DECCX
MOVAX,DATA[BX]
MOVMAX,AX
MOVMIN,AX
LOOP1:
INCBX
INCBX
MOVAX,DATA[BX]
CMPAX,MAX
JLNEXT
MOVMAX,AX
NEXT:
CMPAX,MIN
JGNEXT2
MOVMIN,AX
NEXT2:
LOOPLOOP1
RET
搜索
;------------
代码ENDs
----------------------------------------
ENDSTART