首页 > 试题广场 >

若有以下定义和语句,则不能表示a数组元素的表达式是?

[单选题]
若有以下定义和语句:
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p = a;
则不能表示a数组元素的表达式是
  • *p
  • a[10]
  • *a
  • a[p-a]
推荐
答案:选B
A的值为1
B越界
C和A相同
D p-a地址相减为0,访问数组第一个元素
编辑于 2015-02-05 11:42:40 回复(0)
答案:B
解析:
A:相当于a[0]
B:以为数组的下标从0开始,所以10越界。
C:相当于a[0]
D:p和a指向同一个数组,可以做加减法(如果p和a不是指向同一数组则会出错),得到的值为整数。此题为0。所以D也相当于a[0]。
发表于 2015-06-23 15:20:58 回复(2)
*p=a[0];
a[10]数组越界
*a=a[0];
p与a都是指向a[0]的地址,相同地址相减为0 ,a【p-a】=a【0】
发表于 2017-09-16 09:05:04 回复(0)
a表示数组的首地址,那么*p=a不也应该是数组的首地址吗。为什么是1呢
发表于 2018-03-20 22:11:07 回复(6)
选项A和选项C是一样的,都指向第一个元素。
选项B已经越界,最大只有a[9]。
选项D p-a得到0,故选项D得到的是a[0]
发表于 2015-12-19 01:32:19 回复(0)
*p*a都相当于a[0]
发表于 2021-11-03 00:43:26 回复(0)
又不是 a[9]
发表于 2017-07-31 16:09:37 回复(1)
A、C:相当于a[0]
D:p-a=0
发表于 2017-06-02 15:53:45 回复(0)
数组a的长度为10,a[10]数组越界,故不合法。
发表于 2017-01-08 21:33:25 回复(0)
B a[10]越界
发表于 2015-11-13 00:39:23 回复(0)
原来还有c这种操作,没看是否越界了....要细心
发表于 2018-10-20 22:39:35 回复(0)
所有的可能性都考虑了,竟然没想到是越界了
发表于 2024-04-19 20:34:36 回复(0)
800度近视,越界都没看见我这眼睛
发表于 2023-11-27 20:22:30 回复(0)
B错在数组越界
发表于 2023-10-10 10:49:07 回复(0)
不能表示a数组元素的表达式是,使用a[10]越界了,可以使用a[0]~a[9]
发表于 2023-02-27 20:49:10 回复(0)
B数组越界A,p为指针指向数组首元素地址*p获取该元素的值
发表于 2022-11-15 21:28:55 回复(0)
C语言规定数组下标从0开始,范围为0-9,不存在a[10]
发表于 2022-04-18 12:13:00 回复(0)
越界
发表于 2021-06-25 09:13:40 回复(0)
数组下标从零开始
发表于 2017-03-23 10:56:29 回复(0)
越界
发表于 2017-03-08 15:34:18 回复(0)