鱼C论坛

 找回密码
 立即注册
查看: 5181|回复: 7

[知识点备忘] S1E44:传递结构体变量和结构体指针

[复制链接]
发表于 2017-3-16 03:38:03 | 显示全部楼层 |阅读模式
购买主题 已有 23 人购买  本主题需向作者支付 5 鱼币 才能浏览
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-15 17:31:35 | 显示全部楼层
结构体的动态申请
#include <stdio.h>
#include <stdlib.h>

struct Date
{
  int year;
  int month;
  int day;
};

struct Book
{
  char title[128];
  char author[40];
  float price;
  struct Date date;
  char publisher[40];
} ;

void getInput(struct Book *book);
void printBook(struct Book *book);

void getInput(struct Book *book)
{
  printf("请输入书名:");
  scanf("%s",book->title);
  printf("请输入作者:");
  scanf("%s",book->author);
  printf("请输入售价:");
  scanf("%f",&book->price);
  printf("请输入出版日期:");
  scanf("%u-%u-%u",&book->date.year,&book->date.month,&book->date.day);
  printf("请输入出版社:");
  scanf("%s",book->publisher);
}

void printBook(struct Book *book)
{
  printf("书名:%s",book->title);
  printf("作者:%s",book->author);
  printf("售价:%.2f",(*book).price);
  printf("出版日期:%u-%u-%u",book->date.year,book->date.month,book->date.day);
  printf("出版社:%s",book->publisher);
}

int main()
{
  struct Book *b1 , *b2;
  b1 = (struct Book *)malloc(sizeof(struct Book));
  //强制转化成指向Book结构体的指针
  b2 = (struct Book *)malloc(sizeof(struct Book));
  if(b1 == NULL || b2 == NULL)
  {
    printf("内存分配失败!\n");
    exit(1);
  }
  printf("请录入第一本书的信息...\n");
  getInput(b1);
  //因为b1,b2是指针,所以取地址运算符&就不用了
  putchar('\n');
  printf("请录入第二本书的信息...\n");
  getInput(b2);

  printf("\n已录入完毕\n");

  printf("正在打印第一本书的信息...\n");
  printBook(b1);
  putchar('\n');
  printf("正在打印第二本书的信息...\n");
  printBook(b2);
  putchar('\n');

  free(b1);
  free(b2);

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2021-3-16 19:22:54 | 显示全部楼层
好你个小猪猪,臭猪猪,朱然这么懒,我的强迫症都要犯了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-3-16 19:24:26 | 显示全部楼层
Natory_pu 发表于 2021-3-15 17:31
结构体的动态申请
#include
#include

老哥有点强啊啊!!!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-5 15:19:49 | 显示全部楼层
好好学习才能天天向上!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-18 21:35:11 | 显示全部楼层
他那个用指针指向结构体变量为什么出版日期那年月日会乱码?有大佬能解答一下吗,代码是和小甲鱼的一样的

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-18 21:38:06 | 显示全部楼层
Anzai0752 发表于 2022-11-18 21:35
他那个用指针指向结构体变量为什么出版日期那年月日会乱码?有大佬能解答一下吗,代码是和小甲鱼的一样的
...

请输入售价:9.9
请输入出版日期:20221111
请输入出版社:清华大学出版社

请问是否需要录入图书信息(Y/N):N


录入完毕,现在开始打印验证...

书名:带你学习带你飞
作者:小甲鱼
售价:9.90
出版日期:20221111-1966952527-1717920878
出版社:清华大学出版社
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-5 15:37:46 | 显示全部楼层
终于有源代码了!感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 18:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表