【问题标题】:What is the correct answer among the options? Choose all correct answers选项中正确答案是什么?选择所有正确答案
【发布时间】:2022-11-13 14:08:08
【问题描述】:

选项中的正确答案是什么? 选择所有正确的答案。

struct point {int x; int y;}; 
struct point p[4];

选项是:

1.  p[3].x = 2; 
2.  p[3]->x = 2; 
3.  p.x[3] = 2;
4.  p->x[3] = 2;
5.  (p+3).x = 2;
6.  (p+3)->x= 2;
7.  (p+3) [x] = 2;

选择正确的答案......它可以不止一个。

【问题讨论】:

  • 提示:让你的编译器回答这个问题。

标签: arrays c struct


【解决方案1】:

p 是一个结构数组。首先,您需要知道在 C 中,数组名称是指向其第一项位置的指针,因此 p 指向 p[0] 地址。

p[3].x = 2 是正确的,因为 p[3] 是一个结构,x 是它的字段。

p[3]->x = 2 不正确,因为-> 是一个用于从其指针访问结构字段的运算符。在其他方面它等于(*p[3]).x 这是错误的。

p.x[3]p->x[3] 不正确,因为 p 是一个数组。

(p+3) 是指向 p 中第四项的指针,因为正如我所说,p 本身指向数组中的第一项。所以(p+3)->x = 2 是正确的,(p+3).x = 2 是不正确的。

(p + 3)[x] 不正确。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-21
    • 2018-11-30
    • 1970-01-01
    • 2017-07-23
    • 1970-01-01
    • 2018-07-07
    • 2021-12-30
    • 1970-01-01
    相关资源
    最近更新 更多