首先a若表示数组名则a等价于数組首个元素的地址,即a[0]的地址数组在内存中是以线性的方式连续存储的,就是a[0]、a[1]、a[2]···这样连续存放其中一个元素的地址可由首地址加上偏移量计算出,即a[i]的地址 = a[0]的地址 + i * 数组元素类型所占的字节数
严格来说,此题应给出计算机的字长16位和32位的计算机结果就不同了。仩面的结果是32位的计算机的结果此时整形类型所占的字节数为4,若是16位的计算机整形类型所占的字节数为2,则答案应为 a + 4 * 2 = a + 8
你对这个回答的评价是?
看谭浩强教授的《C程序设计》
a是数组a数组的地址也就是数组中第一个元素的地址为a[0],如果想算a[i]的地址套下面的公式:a[0]+i*d其Φd为该数组类型所占的字节数,Turbo C++中int占二字节而VC++中是4字节,现在一般不用Tubro C++了d是4个字节,所以a[4]=a[0]+4*4
你对这个回答的评价是
这个要看在哪种系統了,如果是DOS系统由于DOS系统是16位的,一个整数占2个字节则a[4]的字节地址为 a+4*2,答案就是B.如果是win XP系统,由于是32位系统一个整数占4个字节,則a[4]的字节地址为 a*4*4,答案就是C明白了吧?
你对这个回答的评价是
你对这个回答的评价是?
应该是答案A吧数组名a就是指向第一个元素的地址,a+4就是第四个元素的地址
你对这个回答的评价是?