C语言问题望高手指点,谢谢!

设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( )。

A.P+i*2 B. P+(i-1)*2 C. P+(i-1) D. P+i

答案为什么不是D?跟字节数有什么关系?

第1个回答  2008-04-26
答案是C
你如果是在编程时用那就是C,因为数组是从0开始的,也就是说第一个数的地址是P,第二个数是P+1,所以第I个数是P+I-1,而不是P+I,而A和B 是实际在内存中占有的内存地址,因为整形占两个字节,所以要*2
第2个回答  2008-04-26
其实这道题考的并不是数据类型占字节数的知识点,而是数组的首地址问题,答案是C,因为数组的首地址就是第一个元素的地址,第二个元素的地址就是P+1,以次类推,所以说P既可以是整个数组的首地址,也是第一个元素的地址,*P就是第一个元素的值.
第3个回答  2008-04-26
数组的数组名代表数组的首地址,故A中第i 个元素的地址为A+i=P+i

选D

跟字节数没有关系
第4个回答  2008-04-26
其实如果短整型是2个字节,而又是32位机器,就是选B
其实如果短整型是4个字节,而又是32位机器,就是选C本回答被提问者采纳
第5个回答  2008-04-26
短整型在现在的PC中是16位,也就是2个字节。

所以指针计算应该是StartPoint + 2 * i这样的。
相似回答