【发布时间】:2015-02-12 23:20:36
【问题描述】:
我正在研究 C 编程中的结构。但是,我对这段代码感到困惑,所以我不明白。函数中的b 来自哪里?怎么会是这样使用的结构?你能给我解释一下吗? 我们可以说display(struct book b1) ;调用函数吗?感谢所有感谢的回答。
#include <stdio.h>
struct book
{
char name[25] ;
char author[25] ;
int callno ;
} ;
int main()
{
struct book b1 = { "Let us C", "YPK", 101 } ;
display ( b1 ) ;
return 0;
}
void display ( struct book b )
{
printf ( "\n%s %s %d", b.name, b.author, b.callno ) ;
}
【问题讨论】:
-
void display (int i) { ... }有什么问题吗? -
你能解释一下为什么不能吗?
-
我们可以说
struct book b1 ;调用函数吗? -
我还是不明白你的困惑。
-
b是display()中的值参数自动变量,调用时从b1中复制main()。真的就是这么简单。那你不明白怎么办? (并且可能与您的问题有关,您(更好)得到的关于display()的警告在使用前没有被声明并且具有假定的int返回值,并且当您最终遇到它时不匹配该隐式声明,可以修复通过对display进行适当的原型设计或将其定义移动到上方main())。