本人写了个图书管理代码,如果在main外面定义一个结构体struct BOOK及结构体变量*book,那book岂不是全局变量了,之后定义的任何一个函数都可以访问book,尽然如此,为什么有的函数还需要传参呢?比如void add(struct BOOK *book)为什么不写成void add()。
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

已结题
关于在main外面定义一个结构体及结构体变量的疑问
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除
- 收藏 举报
2条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
流比 2023-01-17 08:16关注book作为全局变量,在整个程序中都可以访问。在main函数外部定义book是为了方便在不同函数中访问和修改。
但是,在调用函数时还需要传递book指针给函数,是因为函数内部操作的是book的副本,而不是book本身。如果不传递book指针给函数,那么函数内部对book的修改将不会影响到全局变量book。
所以,在调用函数时传递book指针,是为了让函数可以对全局变量book进行修改。
所以,void add(struct BOOK *book)
这样是为了方便函数内部对book进行修改.本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 1无用举报微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2020-06-01 07:43回答 1 已采纳 ``` #include struct Student { int id; //学号 char name[20]; //姓名 float score; //成绩 }; int
- 2022-10-01 14:47回答 1 已采纳 数组不能这样赋值, 用sprintf或者memcpy, 或者用一个循环一个一个字符赋值。比如 sprintf( stu.name, "zzzz"), 注意拷贝的时候不能越界
- 2022-05-11 02:19回答 1 已采纳 这样定义有几个好处1.可以保证你的指针在循环的过程中不会把head搞丢了,你的tree永远指向的是root,它跟node类型不一样,你不会不小心把指向root的指针给指向node去2.如果你需要记录整
- 2021-05-23 17:25weixin_39930557的博客 C语言中为用户提供了占用内存不同长度的数据类型,如int,float,char等,当同样地数据类型有序的组合在一起时组成了数组,但是实际应用过程中常常会遇到不同的数据类型组合在一起的情况,比如定义一个人时,需要年龄,...
- 2022-08-18 03:28回答 4 已采纳 看到你提的这个问题,可能你对结构体不熟悉,或者说你对指针还不熟悉;int *p;p + 1 是多少?是p 往后的4个字节,按照 p 的类型移动的。 struct structA *p;p +1 是多少
- 2022-03-02 12:49回答 1 已采纳 注意你的结构体成员是char数组 用%s啊 注意你的中文符号!!! #include<iostream> using namespace std; struct student {
- 2021-07-01 14:51回答 2 已采纳 成绩除以10,用switch...case... struct student { char name[20]; int score; char grade[10]; }stu[100];
- 2024-10-08 14:58Thanks_ks的博客 首先,文章解释了为什么需要结构体以及结构体的定义,并通过多个案例演示了如何声明结构体类型和变量。接着,文章详细讲解了如何访问和修改结构体成员,包括逐个赋值和使用大括号一次性初始化。此外,文章还介绍了...
- 2021-08-13 11:54回答 1 已采纳 这里的people不是变量,而是typedef定义的类型名称
- 2022-01-29 09:15回答 2 已采纳 写了一个管理系统,你可以测试一下! #include <stdio.h> #include <assert.h> #include <string.h> #def
- 2022-01-18 09:33回答 1 已采纳 HuffmanTree是树节点指针类型 typedef struct { int weight; int parent, lc, rc; } HTNode, *HuffmanTree;
- 2020-09-22 01:50定义结构体的语法是在关键字type后跟一个结构体名称,然后大括号内定义结构体的字段,每个字段由字段名称和字段类型组成。例如,可以定义一个结构体表示二维坐标点: ```go type Vertex struct { X int Y int } `...
- 2024-04-10 05:33通过以上知识点的学习,您应该能够掌握Go语言的基本编程技巧,包括编写简单程序、变量声明、流程控制、函数定义、结构体使用以及并发编程等方面的知识。这些技能将为您的后续学习打下坚实的基础。
- 2020-07-20 08:04在这个例子中,我们定义了一个名为`comparePersons`的函数来比较两个`Person`结构体变量是否完全相同。通过分别比较每个成员的值来确定两个结构体变量是否相等。 #### 五、实际案例分析 根据给定的部分内容,我们...
- 2023-12-23 16:18在给出的示例中,我们定义了一个名为`Student`的结构体,它有三个成员变量:`id`(整型,表示学生ID),`age`(整型,表示学生的年龄),以及`score`(浮点型,表示学生的分数)。以下是如何定义这个结构体: ```...
- 没有解决我的问题, 去提问
问题事件
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司