若有定义int a[3][4];不能表示a[1][1]的是 A.*(a[1]+1) B.*(&a[

若有定义int a[3][4];不能表示a[1][1]的是
A.*(a[1]+1) B.*(&a[1][1]) C.(*(a+1))[1] D.(a+5)
详解谢谢

只有A是错的,B、C、D都是正确的。

先搞清楚如果定义了inta[n][m],那么a就表示是一个指向有m个元素的数组指针

下标操作符优先于解除引用操作符,所以*(a+1)[1]就是*((a+1)[1]), (a+1)[1]就是*(a+1+1)也就是a[2],那么*(a+1)[1]就是*(a[2])也就是a[2][0],很显然不是a[1][1]。

而D选项*(a+5)就是a[5],这是个行地址,而且是越界后的地址。也不是a[1][1] ,*(a[0]+5)或者*(*a+5)才是a[1][1]

扩展资料:

从第二项开始,每个偶数项的平方都比前后两项之积多1,每个奇数项的平方都比前后两项之积少1。如:第二项 1 的平方比它的前一项 1 和它的后一项 2 的积 2 少 1,第三项 2 的平方比它的前一项 1 和它的后一项 3 的积 3 多 1。

(注:奇数项和偶数项是指项数的奇偶,而并不是指数列的数字本身的奇偶,比如从数列第二项 1 开始数,第 4 项 5 是奇数,但它是偶数项,如果认为 5 是奇数项,那就误解题意,怎么都说不通)

参考资料来源:百度百科-斐波那契数列

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-12
只有A是错的,B、C、D都是正确的。
选A
数组、指针的基础知识。本回答被网友采纳
第2个回答  2015-06-22
D追问

对的,能解释一下么

追答

先搞清楚如果定义了inta[n][m],那么a就表示是一个指向有m个元素的数组指针

追问

不是m×n个元素吗

追答

对单独a的而言

追问

不是这样吗

单独的a又是什么

追答

追问

那m+1乘n+1又是什么,你说单独的a是什么

追答

a[0]=a+1
这个明白不?

a[1]=a+1

上面打错了

追问

知道

追答

a[1]你的理解是什么?

追问

就是一个数组,然后包含两个数

是这样吗,还是一个地址?

追答

它是一个地址还是一个值?

追问

应该是地址

*就是取地址里的值对吗

追答

是的,你理解a[1]的话,那么这道题应该没有问题啊

追问

不对,那&又是什么,也是地址吧

追答

&是取地址

a,a[0]的区别能不能区分?

它们都是指针,但类型却不同

追问

B选项*(&a[1][1])a[1][1]是取地址那为什么还要一个&取地址

对了,a[1][1]是地址

再加一个&是取地址

追答

B直接去了一个值的地址,再加个*就是值了

B直接取了一个值的地址,再加个*就是值了

a[1][1]是值

追问

那 c呢

c中a+1是地址吗

a是地址,a[1]是数组地址吧

追答

追问

为什么c中没有取地址符号?

哎,我真是什么都不知道

追答

*(a+1)

追问

是不是要不要&都无所谓

追答

&是个取地址符,它负责把一个值的地址取出来.

追问

嗯嗯,谢谢

追答

我觉得你还没搞明白,哈哈~可能我表达不清

追问

是哒,你说对了~还有我查了一遍百度都没找到数组a,a[x]是表示地址还是数值什么

刚才那题
若有定义int a[3][4];不能表示a[1][1]的是
A.*(a[1]+1) B.*(&a[1][1]) C.(*(a+1))[1] D.(a+5)
中&到底是干什么的

要不要是不是都无所谓啊选项c中的&

本回答被提问者采纳
相似回答