Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C+中的结构格式+;_C++_Structure - Fatal编程技术网

C++ C+中的结构格式+;

C++ C+中的结构格式+;,c++,structure,C++,Structure,当我声明这个结构时,“list*”是什么意思?对于结构,我认为我使用了花括号而不是括号?对于这个问题,我很抱歉,我试着在谷歌上搜索,但什么也找不到 这是函数list\u const的函数声明,它接受两个参数,一个是整数data\u项,另一个是名为tail的指针,指向类型为list的对象。该函数的返回值也是指向list类型的对象的指针。您还可以将此代码段重写为 struct list* list_cons(int data_item, struct list* tail); 这看起来像是从旧C继

当我声明这个结构时,“list*”是什么意思?对于结构,我认为我使用了花括号而不是括号?对于这个问题,我很抱歉,我试着在谷歌上搜索,但什么也找不到

这是函数
list\u const
的函数声明,它接受两个参数,一个是整数
data\u项
,另一个是名为
tail
的指针,指向类型为
list
的对象。该函数的返回值也是指向
list
类型的对象的指针。您还可以将此代码段重写为

struct list* list_cons(int data_item, struct list* tail);

这看起来像是从旧C继承的代码,在旧C中,您必须声明您正在使用的类型是一个结构,除非它显式地是typedef'd

开头的
struct list*
是函数
list\u cons
返回的类型。在C++中,你只需写代码>列表ListList-CONS < /代码>。这里的任一语法都表示函数返回指向列表结构的指针

函数中的参数也是如此,第一个参数只是一个int,第二个参数是指向列表结构的指针。考虑到变量名为tail,我希望它应该位于列表的后面

如果你没有在C++中覆盖指针,那么在理解这个之前,你必须先仔细地看一看。


否则,C中的<代码>结构列表*<代码>等价于C++中的代码>列表*/COD>。
struct list; // forward-declare the type

list* list_cons(int data_item, list* tail);  // declare function without 'struct' keyword

所以基本上,
struct list*list\u cons(int data\u item,struct list*tail)
是一个函数声明,它使用两个参数作为数据项和指向尾部的指针。它返回结构列表类型的指针。

您正在合并列表结构的声明和指向列表的指针的声明。此函数使用int类型的两个参数和指向list类型的指针。因此,不需要像这样声明每个结构这是.< /p> <代码> ListyOns是一个函数,<代码>结构列表*>代码>是返回类型,指向你的结构。你确定这是C++而不是C吗?哦,我现在明白了,谢谢!
return_type func_name(arg1, arg2)

struct list* list_cons(int data_item, struct list* tail);

> return_type ---> struct list*
func_name ----> list_cons
arg1 -----> int data_item
arg2 ---------> struct list* tail