首页 > 试题广场 >

为了建立如图所示的存储结构(即每个结点含两个域,data是数

[不定项选择题]

在C++中,为了建立如图所示的存储结构(即每个结点含两个域,data是数据域,next是指向结点的指针域),则在[] 处应填入选项是


struct link
{
char data;
[];
} node;


  • link next;
  • struct link * next;
  • link * next;
  • struct link next;
在C++中B、C都行,但在C中只有B行。因为在C++中可以有不完全的类类型,就是在类中可以声明类自身的指针和引用。
发表于 2015-07-14 21:32:13 回复(8)
C++中可以省去struct关键字但是C中不行;
因为没有说明是什么语言所以不能省略struct。
struct link next[]等价于struct link *next,在编译器内部会有识别出两者不同但是本质上二者都是指向struct link对象的指针;
那么B和D的区别就在于B中的是指针数组,即next数组中每一个元素都是一个struct link指针,而D中next数组中每一个都是struct link对象;
B访问后续元素语句为*b.next[i]    D访问后续元素语句为d.next[i]
由于题目指明next为节点指针域(存储指针的区域)故选择B。
发表于 2016-04-16 18:40:46 回复(1)
注意:在C++中,定义相应的指针时,可以写struct也可以不写struct,但是在C语言中,必须要写struct
发表于 2016-05-21 18:20:43 回复(0)

C++中可以有不完全的类类型,因此选项B和C都是正确的。

在C++中,可以在类的定义中使用不完全类型,包括指向类自身的指针或引用。因此,在选项B和C中,都使用了指向结构体link的指针变量next,可以有效地实现链表结构。

而在C语言中,不支持不完全类型,因此只有选项B,即struct link * next是正确的。选项C,即link * next,是C++中的写法,在C语言中是不合法的。

发表于 2023-11-02 10:04:39 回复(0)
C++中可以省去struct关键字但是C中不行;
发表于 2017-06-30 20:40:50 回复(0)
相信我,如果是c++用户尽情地写这种形式。
发表于 2017-02-22 23:10:32 回复(0)
类中可以声明类自身的引用和指针
发表于 2016-07-10 20:20:27 回复(0)