&buf的指针类型的类型是int ()[100]
所以&buf+1即buff+100,即&buff[100],即数组最后一个元素占用内存后的地址位
viod f()是交换两个数。
当p<q时,交换数字,然后p++成第二个数地址,q--成倒二个数地址。
就是:1和8交换,2和7交换3和64和5交换。
选b
直接寻址的例子里:
mov ax,array ;访问第0个元素,array是数组第一个元素的地址
mov ax,array + 2 ;访问第1个元素,array是数组第一个元素的地址
代码段里:
mov ax array ;将array数组的地址给ax ,array代表数组的地址
错误,传送地址,应该是:
MOV BX, OFFSET array ;将array数组的(首)偏移地址给BX
ary_size dw $-array ;计算数组所占的字节数,array代表数组的首地址
对。
data segment
array dw __,__, ;10个数,你自己定义,数之间用,隔开
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov bx,offset array ;获取数据段变量的首地址->BX
mov cx,10 ;循环次数
mov ax,0 ;和,初值0
rot: add ax,[bx] ;把一个数组单元加到AX中
inc bx ;指向下一个单元
loop rot ;循环,CX-1不是0就循环,是0退出
;现在结果在AX中
;其它程序
mov ax,4c00h
int 21h ;结束,返回dos
code ends
end start
ax是16位,即2个字节(1个字)。ARRAY+0 和ARRAY+1合起来是1个字。 (01)(23)(45)(67)(89)。可以看到,ARRAY+8才是第5个字开始地址。ARRAY+8 和ARRAY+9合起来是一个字。
以上就是关于C语言数组的地址怎么看全部的内容,包括:C语言数组的地址怎么看、一道C语言问题、汇编里面的数组名什么时候是地址什么时候是数组的第一个值变量等标号呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)