学不死就死里xue 发表于 2023-6-22 21:12:05

getinput是个什么东西

include<stdio.h>
struct Date
{
        int year;
        int month;
        int day;
};
struct Book
{
        char title;
        char author;
        float prince;
        struct Date date;
        struct publisher;       
};
int main()
{
        struct Book b1,b2;
       
        printf("请录入第一本书的信息...\n");
        b1=getInput(b1);            想了老半天就是理解不了这个getinput( b1),小甲鱼说是把这个空的结构体变量b1赋值过去
                                           我能理解为这个getinput是个地址吗   我隐约知道这个是自定义函数 但是这个自定义函数有什么用吗 有大佬帮我解释的明白一点吗 有点笨 太专业化 听不懂
       
        return 0;
}

isdkz 发表于 2023-6-22 21:23:43

你理解得对, getInput(b1) 在这个例子中应该就是一个自定义函数,可能是用于接收用户输入并返回一个填充了信息的 Book 结构体。

下面是一个可能的定义方式:

struct Book getInput(struct Book book){
    printf("请输入书名:\n");
    scanf("%s",book.title);
    printf("请输入作者:\n");
    scanf("%s",book.author);
    printf("请输入价格:\n");
    scanf("%f",&book.prince);
    printf("请输入出版日期(年 月 日):\n");
    scanf("%d %d %d",&book.date.year, &book.date.month, &book.date.day);
    printf("请输入出版商:\n");
    scanf("%s",book.publisher);
    return book;
}


此函数的工作流程是这样的:

1. 你创建了一个名为 b1 的 Book 结构体实例,但它的所有字段都是空的。
2. 然后你调用 getInput(b1) 函数,将 b1 作为参数传递。 getInput() 函数通过键盘输入接收书的详细信息,并将这些信息存储在 book 结构体中(它是传入的 b1 )。
3. 函数返回填充了数据的 book ,并将其赋值给 b1 。这样, b1 就包含了用户输入的书籍信息。

关于你的另一个问题:在这个例子中, getInput 不是一个地址。它是一个函数,可以接受一个 Book 类型的参数,并返回一个 Book 类型的结果。在C语言中,函数名确实可以视为函数体的地址,但在此上下文中,我们更关心的是它作为一个功能的实现,而不是它的内存地址。

希望这个解答对你有所帮助。如果还有其他问题,欢迎继续提问!

sfqxx 发表于 2023-6-22 22:48:42

`getInput` 是一个自定义函数,它用于获取用户输入并将输入的值赋给结构体 `b1`。这个函数可能在代码中没有直接给出,但是根据代码的上下文,我们可以推测它的作用。

通常情况下,自定义函数是由程序员编写的,用于实现特定的功能。在这段代码中,`getInput` 函数可能会包含一些输入操作,用来向用户询问与书籍相关的信息,并将这些信息存储到结构体 `b1` 中。

虽然在给出的代码片段中没有提供 `getInput` 函数的实现,但是假设这个函数在其他位置被定义了,可能类似如下的形式:

struct Book getInput(struct Book b) {
    // 这里可以加入相关的输入操作,向用户询问并获取信息
    // 然后将获取的信息赋值给结构体 b
    return b;
}

函数原型可以类似于上述形式。它接受一个结构体作为参数,并返回一个结构体。在这个例子中,参数是结构体 `b1`,它表示空的结构体变量。函数会获取用户输入的值,并将这些值赋给结构体 `b1`,然后返回更新后的结构体。

这样,在 `b1=getInput(b1)` 这一行代码执行时,函数 `getInput` 将会被调用,用户会被要求输入与书籍相关的信息,并将输入的值赋给结构体 `b1`。最终,结构体 `b1` 中存储了用户输入的数据。

希望这样的解释能够帮助你理解代码中的 `getInput` 函数的作用。如果有任何其他问题,请随时提问。

求最佳答案{:10_254:}

学不死就死里xue 发表于 2023-6-23 20:46:32

sfqxx 发表于 2023-6-22 22:48
`getInput` 是一个自定义函数,它用于获取用户输入并将输入的值赋给结构体 `b1`。这个函数可能在代码中没有 ...

struct Book getInput(struct Book b) {
    // 这里可以加入相关的输入操作,向用户询问并获取信息
    // 然后将获取的信息赋值给结构体 b
    return b;
}

不好意思呀,我函数的知识快忘记了,这个return b有什么用呢 是将这个函数最后运算得出的数值给b吗

sfqxx 发表于 2023-6-23 20:56:45

学不死就死里xue 发表于 2023-6-23 20:46
struct Book getInput(struct Book b) {
    // 这里可以加入相关的输入操作,向用户询问并获取信息
   ...

是的,`return b;` 这行代码的作用是将结构体 `b` 的值返回给函数调用者。在这个函数中,将结构体 `b` 作为参数传递进来并修改了它的值,最后通过 `return` 关键字将修改后的结构体 `b` 返回给函数调用者,以便下一步使用。

可以想象,在程序的其他地方,我们可能会这样使用这个函数:

struct Book myBook;
myBook = getInput(myBook);

上面的代码中,`myBook` 是一个 `Book` 结构体类型的变量,我们通过将其作为参数传递给 `getInput()` 函数,并让该函数返回值再次赋值给 `myBook` 变量,从而更新了 `myBook` 的值。

sfqxx 发表于 2023-6-23 20:58:18

如果我的回答对您有帮助的话,不妨动动发财的小手给这个帖子评分->https://fishc.com.cn/thread-229812-1-1.html

求5荣誉5鱼币3贡献{:10_254:},谢谢
页: [1]
查看完整版本: getinput是个什么东西