2个回答
展开全部
定义语句 float a[5], *p, *q; p=q=a; 表示定义了一个名为a的浮点型数组,其中包含了 5 个元素,同时定义了两个指向 float 类型的指针 p和 q ,并将他们都指向了 a 数组的首元素。也就是说,p 和 q 的初始值都为 &a[0]。
因此,能正确表示数组 a 首元素地址(即 &a[0])的表达式有:
a
&a[0]
p
q
p+0
q+0
这些表达式所表示的值都是数组 a 的首地址即 &a[0],但是它们的类型、语法和实际用法可能略有不同。例如,a 和 &a[0] 是等价的,但前者是数组名,可以直接被作为指向第一个数组元素的指针使用,而后者是取址运算符作用于数组下标为 0 的元素上的结果,相当于对该元素的取地址。而 p、q、p+0 和 q+0 都是指针,可以通过解引用操作 *p 或 *q 来获取到数组首元素的值。
展开全部
现在让我们分析各个选项:
(a) a:这是正确的,因为在C语言中,数组名本身表示首元素的地址。
(b) p+1:这个选项表示的是首元素之后的第二个元素的地址,因为p指向数组首元素,p+1指向下一个元素。所以这个选项不正确。
(c) q:这是正确的,因为q被赋予了a的地址,即数组首元素的地址。
(d) &a[0]:这是正确的,因为&a[0]表示取数组第一个元素(即首元素)的地址。
(e) p:这是正确的,因为p被赋予了a的地址,即数组首元素的地址。
综上,正确表示数组a首元素地址的表达式有:(a) a,(c) q,(d) &a[0],和(e) p。
(a) a:这是正确的,因为在C语言中,数组名本身表示首元素的地址。
(b) p+1:这个选项表示的是首元素之后的第二个元素的地址,因为p指向数组首元素,p+1指向下一个元素。所以这个选项不正确。
(c) q:这是正确的,因为q被赋予了a的地址,即数组首元素的地址。
(d) &a[0]:这是正确的,因为&a[0]表示取数组第一个元素(即首元素)的地址。
(e) p:这是正确的,因为p被赋予了a的地址,即数组首元素的地址。
综上,正确表示数组a首元素地址的表达式有:(a) a,(c) q,(d) &a[0],和(e) p。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询