C ++中的结构格式

时间:2018-09-10 07:50:05

标签: c++ structure

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

当我声明此结构时,“ list *”是什么意思,对于我认为使用大括号而不是大括号的结构?很抱歉,我尝试使用Google搜索,但是找不到任何内容。

4 个答案:

答案 0 :(得分:2)

这是函数list_const的函数声明,它接受两个参数,一个整数data_item和一个名为tail的指针,该指针指向一个list类型的对象。该函数的返回值再次是指向list类型的对象的指针。您也可以将此代码段重写为

struct list; // forward-declare the type

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

答案 1 :(得分:0)

这看起来像是从旧的C语言继承的代码,您必须声明所使用的类型是结构,除非明确地对其进行类型定义。

开头的const inventory = [ { color: "white", id: 1, name: "pearls", uses: [ "buy", "craft", "trade", "sell" ], weight: 0.1, worth: 100 }, { color: "white", id: 2, name: "pearls", uses: [ "buy", "craft", "trade", "sell" ], weight: 0.1, worth: 100 }, { color: "brown", id: 3, name: "wood", uses: [ "buy", "craft", "trade", "sell" ], weight: 2, worth: 10 } ]; const net_worth = inventory.reduce(( a, b ) => a + b.worth, 0 ); console.log( `two pearls and one wood are worth ${ net_worth }` ); const oyster = { color: "grey", id: 4, name: "oyster", uses: [ "loot_pearls", "open" ], weight: 1, worth: 6 }; console.log( `opening the oyster gave you ${ oyster.worth } pearls` );是函数struct list*返回的类型。在C ++中,您只需编写list_cons。这两种语法都意味着该函数返回指向列表结构的指针。

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

如果您还没有涵盖C ++中的指针,那么在理解之前,您必须先仔细研究一下。 否则,C中的list* list_cons等同于C ++中的struct list*

答案 2 :(得分:0)

函数可以声明为:

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

因此,struct list* list_cons(int data_item, struct list* tail);基本上是一个函数声明,它使用两个参数作为 data_item 指向尾部的指针。它返回结构列表的指针类型。

答案 3 :(得分:0)

您正在 MERGING ,是一个列表结构的声明和一个指向列表的指针的声明。此函数接受两个int类型的参数和一个指向list类型的指针。对于这样声明的每个结构,不需要