C语言结构体传值-->传递结构体

结构体的传值方法一共有三种形式,通过传递结构体传递指针传递结构体自身参数

结构体是一种特殊的数据类型,早期的C标准并不支持直接向函数中传递一个结构体,C99标准支持这样的形式

来看看以下代码:

/*
*该实例程序用来显示如何在方法体中传递结构体参数
 该传递参数的方法是通过直接传递结构体的形式对参数进行传递
 getinfo()方法用于对结构体指针进行赋值操作
 showinfo()方法用于对结构体进行输出 
*/ 
#include <stdio.h>
#define MAX_SIZE 2
#define MAX_TITLE_SIZE 30
#define MAX_AUTHOR_SIZE 30
//构造一个Book 类型的结构体
 /*
  *title 为char类型
   author char 类型
   price float 类型 
 */ 
struct Book 
{
    char title[MAX_TITLE_SIZE];
    char author[MAX_AUTHOR_SIZE];
    float price;
    
}; 
struct Book getinfo(struct Book lib);
struct Book showinfo(struct Book lib);
int main()
{
    struct Book lib;
    lib=getinfo(lib);
    showinfo(lib);
    return 0;    
}
struct Book getinfo(struct Book lib)
{
    printf ("输入该书名:\t");
    gets(lib.title);
    printf("输入该作者名 \t");
    gets(lib.author);
    printf("输入书的价格 \t");
    scanf("%f",&lib.price);
    return lib; 
}
struct Book showinfo(struct Book lib)
{
     printf("The Book title is %s \t and the Book author is %s\t and the price is %f \t",
                             lib.title,lib.author,lib.price);
}

运行结果如下

 

posted @ 2016-10-30 18:15  爱吃猫的鱼z  阅读(1248)  评论(0)    收藏  举报