首页 > 试题广场 >

已知int a[10] = { 0, 1, 2, 3, 4,

[单选题]

已知int a[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, *p = a;,不能表示数组a中元素的式子是()

  • *a
  • *p
  • a
  • a[ p-a ]
选项A和B应该问题不大,对数组名进行操作时数组名会退化为常量指针指向数组的首元素地址,*p和*a的值都是数组首元素的值。
对于C选项:前面已经解释过了,a就是一个指向数组首元素地址的指针,a表示的是一个地址不是数组中的元素
对于D选择,其实也可以根据前面的解释知道结果了,由于*p=a;所以p和a都是指向数组首元素地址的指针,即p和a是相等的,所以p-a=0,也就是a[p-a]=a[0].
发表于 2018-08-25 19:37:31 回复(0)
*p和*a表示数组的首元素,即a[0]。 p和a表示数组地址
发表于 2020-09-08 12:54:18 回复(1)

答案是C
int a[ ]={0,1,2,3,4,5,6,7,8,9}:意思是a数组为包含{0,1,2,3,4,5,6,7,8,9}的整数数组,
int a[ ]={0,1,2,3,4,5,6,7,8,9},*p=a:p是等效于a的整数指针,你应该这样读int *p =a;(*号跟着变量走)定义了一个指针等于a数组首地址。
编辑于 2018-05-13 18:14:41 回复(2)
*P =a  不是P指向的那个地址 存的值是a吗 ,希望大佬解惑
编辑于 2021-07-31 10:46:07 回复(2)
选项A和B应该问题不大,对数组名进行操作时数组名会退化为常量指针指向数组的首元素地址,*p和*a的值都是数组首元素的值。
对于C选项:前面已经解释过了,a就是一个指向数组首元素地址的指针,a表示的是一个地址不是数组中的元素
对于D选择,其实也可以根据前面的解释知道结果了,由于*p=a;所以p和a都是指向数组首元素地址的指针,即p和a是相等的,所以p-a=0,也就是a[p-a]=a[0].
发表于 2021-11-19 17:06:12 回复(0)
数组名代表首地址
发表于 2023-09-18 19:37:47 回复(0)
不能注意!
发表于 2022-10-12 11:12:47 回复(0)
*p=&a[]等价*p=a *p与*a均为取值
发表于 2021-10-19 16:09:21 回复(0)
d相当于 *p
发表于 2018-05-12 23:28:03 回复(1)