【问题标题】:What does it mean when a structure is used as a function type将结构体用作函数类型是什么意思
【发布时间】:2020-04-29 09:02:12
【问题描述】:

所以我们开始用 C 语言编写结构,并获得了一些使用结构和函数的示例。 大多数是 void 函数,但有些函数,而不是数据类型,具有结构名称。例如:

Student* ucitajStudenteTxt(int* koliko)

其中“Student”是先前声明的结构。

我只是想知道这种类型的声明是什么意思,它有什么好处,因为我在演示文稿或网上找不到答案。

【问题讨论】:

  • 函数返回一个指向Student结构体的指针
  • “而不是数据类型,有一个结构名称”——结构数据类型。
  • 我的猜测是他们使用了 Student*,以便您可以返回指向学生数组的指针。

标签: c function structure


【解决方案1】:

Student * 用于返回指向Student 类型的指针。如果我们简单地使用Student,它会返回类型Student 本身。 您在评论中问,使用指针变量而不是类型本身的目的是什么。指针有很多用例。例如,如果要修改作为参数传递给函数的变量(按地址传递),则必须使用指针变量。 在您没有完整的程序上下文的情况下,我们无法说明为什么使用指针。

有时处理指针变量要容易得多。例如,在处理链表数据结构时,为每个节点使用指向类型本身的指针会更容易处理。

【讨论】:

    【解决方案2】:

    假设Student 是一个有效类型,那么Student * 是“指向Student 的指针”类型。

    所以它也是一种类型,只是不是 C 的标准类型之一。

    【讨论】:

    • 使用该类型而不是标准类型的目的是什么?
    • @Neptune 与返回任何类型的值一样吗?我不知道ucitajStudenteTxt 应该做什么,但它可能会以某种方式创建一个Student 结构实例,然后返回一个指向该结构实例的指针,因此调用者可以以某种方式使用该结构。
    猜你喜欢
    • 2020-11-21
    • 2019-08-15
    • 2016-11-09
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 2014-06-23
    相关资源
    最近更新 更多