c语言程序设计题,帮忙解决一下思考题,急!!!!

2024-11-08 05:56:54
推荐回答(2个)
回答(1):

1、在定义二维数组时就已经给数组分配好了地址,不需要初始化也可以显示地址

2、根据显示地址可以看出每个元素占4字节

回答(2):

  1. 不对数组初始化也可以达到目的,定义一个二维数组只不过也是在系统内存中开辟一系列连续的内存空间而已,初始化的作用仅仅是给这些内存空间赋值(即将数据保存在这些内存空间中)。

  2. 根据显示的地址可以判断元素所占的内存单元。随便找出两个相邻的输出的地址,后面的地址减去前面的地址(注意地址是用16进制记录的)后,所得结果就是每个元素内存所占有的字节数了(题目是int 型,所以计算结果应该是4)。

    (By the way:比如题目已经说了是int 型的数组,那么每一个int 型的空间所占有的内存都是4个字节(int b[n1][n2]的每一个元素都是int 型),你只需要用最后一个元素地址减去第一个元素地址后除以每一个元素内存空间的所占字节数(这里int 是4)即可得到(n1+n2)-1的值。)

 

再说一下,二维数组可以理解为数组的数组,就是一个一维数组的每一个元素都是一个数组。