|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
include<stdio.h>
struct Date
{
int year;
int month;
int day;
};
struct Book
{
char title[128];
char author[40];
float prince;
struct Date date;
struct publisher[40];
};
int main()
{
struct Book b1,b2;
printf("请录入第一本书的信息...\n");
b1=getInput(b1); 想了老半天就是理解不了这个getinput( b1),小甲鱼说是把这个空的结构体变量b1赋值过去
我能理解为这个getinput是个地址吗 我隐约知道这个是自定义函数 但是这个自定义函数有什么用吗 有大佬帮我解释的明白一点吗 有点笨 太专业化 听不懂
return 0;
}
你理解得对, 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语言中,函数名确实可以视为函数体的地址,但在此上下文中,我们更关心的是它作为一个功能的实现,而不是它的内存地址。
希望这个解答对你有所帮助。如果还有其他问题,欢迎继续提问!
|
|