66问答网
所有问题
c语言 int a[10] 不能表达a[1]的地址的是
A &a[0]+1
B &a[1]
c &a[0]++
D a+1
答案是A,是不是答案错了??
举报该问题
推荐答案 2013-06-24
没错。
题目要的是表达a[1]的地址,但是这个数组是int类型的,一个int类型占用4个字节。
A 选项的 &a[0]+1 这个意思是a[0]取地址后,加上1个字节的长度,但是a[1]的地址是a[0]的地址加上4个字节的长度才对。这样&a[0]+4就对了。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://66.wendadaohang.com/zd/s2UxpD2Dp.html
其他回答
第1个回答 2013-06-24
没错,就是A,因为你看A,它是先取a[0]的地址,再加1。地址加的值加1是什么?他肯定不会是a[1]的地址。所以A是错的,祝你愉快!
第2个回答 2013-06-24
A错的,int的长度是4个字节,所以应该是+4
第3个回答 2013-06-24
应该选c吧
&a[0]++
先是a[0]++然后a[1]的,最后&a[1].本回答被提问者采纳
相似回答
C语言不能
代表
a[1]地址的是
答:
选
C
a为数组名,代表的是数组a的首
地址
,是一个固定不变的量,不能执行"++"操作 A项,p指向a[0],所以p+1指向
a[1]
;B项,同理,a指向a[0],a+1就指向a[1];D项,
表达
式"++p"的值是p+1之后的值,所以也指向a[1];
...
int
aa[8];,则以下
表达
式中
不能
代表数组元素aa
[1]的地址的是
...
答:
B就是对元素aa
[1]
取地址,所以ABD对。
C
中&小于后置++的优先级所以&aa[0]++等价于&(aa[0]++)所以先对aa[0]中的元素值加1后,在对aa[0]取址,结果还是aa[0
]的地址
,故C错。
C语言int
a[10]
={1,2,3},*p=a;
不能
表示a数组元素是?A.*pB.a[10]C.*...
答:
C
可以,*a =
a[
0]D可以,p和a
的地址
都相同,p-a = 0
...
int
aa[8];,则以下
表达
式中
不能
代表数组元素aa
[1]的地址的是
...
答:
C
是对的取
地址
&与自增++是同一优先级且都是自右至左结合的,所以aa[0]加一后在对数值取地址,没有意义。 YUXUYANGJIAN | 发布于2011-12-11 举报| 评论
1 0
选
c
,以下是一个验证程序:#include<iostream>using namespace std;
int
main(){int aa[8];cout << &aa[0]+1 <<" "<< &aa
[1]
<<...
???
C语言
问题
int
a[10]
={1,2,3,4,5,6,7,8,9,10},*p=a;
不能
表示a数组元 ...
答:
定义数组并赋值时
C语言
规定下标是这样的,a[n]中的n个元素应该是a[0]...a[n-
1]
,由此可见答案B中
a[10]
已经超过规定的范围,故不能表示数组a中的元素。答案A中因为指针P指向数组首
地址
,所以*p相当于a[0]这个元素
...
int
a[10]
={1,2,3,4,5,6,7,8,9,10},p=a; 则
不能
表示a数组元素的表 ...
答:
即a[0],
a[1]
,a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],正好10个,没有
a[10]
,所以a[10]就是
不能表达
这个数组元素。
C
、*a ---数组名a中保存的是数组的首
地址
,*是取单元中的值,*a就是取数组首地址中单元中a[0]的值。D、a[p-a] --- p指向的是数组a,因为p...
大家正在搜
c语言char ch是什么意思
c语言static用法
c语言a+=a-=a*a
int a[3][3]
C语言中static
int a[10]
c语言putchar
char c语言
c语言scanf啥意思
相关问题
int a[10],为什么++a不能表示a[1]的地址
若有定义:int a[10];。则以下表达式中不能代表数组元...
???C语言问题int a[10]={1,2,3,4,5,6...
C语言,为什么int a[]的传递参数是这样的?
C语言中, int a[10]; 其中的元素a[0] a[1...
c语言中,int a[5];(int)a+1指什么?是什么意...
c语言中 int a[10] int *pa=a是什么意...
c语言编程 int *a和int a [ ]有区别吗?