#include<stdio.h>struct Date{int year;int month;int day;};struct Book{char title[20];char author[20];struct Date date;};intmain(void){struct Book book;struct Book *pbook;//定义一个指向Book的指针;
pbook =&book;printf("请输入作者:");scanf("%s",book.title);printf("%s\n",pbook -> title);printf("%s\n",(*pbook).title);//(*结构体指针).成员名//结构体指针 -> 成员名 return0;}
传递结构体变量
#include<stdio.h>struct Date{int year;int month;int day;};struct Book{char title[128];char author[40];float price;struct Date date;//结构体的嵌套 };//函数的声明 struct Book getInput(struct Book book);voidprintBook(struct Book book);struct Book getInput(struct Book book){printf("请输入书的名字:");scanf("%s",&book.title);printf("请输入作者:");scanf("%s",&book.author);printf("请输入本书的价格:");scanf("%f",&book.price);printf("请输入本书的出版日期:");scanf("%d%d%d",&book.date.year,&book.date.month,&book.date.day);return book;//返回到b1; }voidprintBook(struct Book book){printf("书名:%s\n",book.title);printf("作者:%s\n",book.author);printf("价格:%f\n",book.price);printf("日期 :%d\n",book.date.year,book.date.month,book.date.day);}intmain(void){struct Book b1,b2;//定义Book结构体变量printf("请录入第一本书的信息");
b1 =getInput(b1);//将b1实参传递到14(struct Book book)行的形参中 putchar('\n');printf("请录入第二本书的信息");
b2 =getInput(b2);printf("\n\n 录入完毕 \n\n");printf("输出第一本书的信息:");printBook(b1);putchar('\n');printf("输出第一本书的信息:");printBook(b2);return0;}