鱼C论坛

 找回密码
 立即注册
查看: 2058|回复: 6

求助

[复制链接]
发表于 2022-9-8 23:12:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
带你学c带你飞里面第44节
void getIput(struct Book *book)
{
  .....
}
为什么使用这个自定义函数时
getIput()
的()里面传入&b1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-8 23:18:28 | 显示全部楼层
struct Book *book  这不是你自己要求传入一个地址吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-9 06:21:20 | 显示全部楼层
对于你这个问题,我也是无语了


你先看看什么是自定义函数:

所有函数都是自定义的,main函数只是名字和参数有所限制。
函数你可以把它当成一个机器,比如你扔进去一堆布和棉花,它出来一堆玩偶。
那么这台机器名字叫做玩偶制造机
输入参数是布和棉花
输出是玩偶
里面具体的实现,就是怎样把布和棉花做成玩偶。
自定义函数按照如下格式
返回类型 函数名 (输入参数)
{
具体实现
返回值
}
对照刚刚的
玩偶类型 玩偶制造机(布, 棉花)
{
玩偶制造过程
返回 玩偶
}
我们假设有了这么一个函数vano,作用是输出一个玩偶的成本:
int main()
{
printf("这是一个成本为%d的玩偶", vano(12, 13));
return 0;
}
我们在调用这个函数的时候不需要关心其内部实现,只需要调用vano()函数,并且将布成本和棉花成本扔进去,我们就可以得到这个玩偶的总成本


对于你说的getinput()
我们来看看,get类型的有很多:
[b]int getc(FILE * stream)[/b]

//和fgetc等效,由fgetc通过宏实现。

[b]int getch(void)(非标准库)[/b]

//从标准输入读入一个字符,当你用键盘输入的时候,屏幕不显示你所输入的字符。不带回显。

[b]int getche(void)(非标准库)  [/b]

//从标准输入读入一个字符,键盘输入的时候,屏幕立即显示所输入的字符。带回显。

[b]int fgetc( FILE * stream )[/b]

//从流stream中读一个字符。将标准输入stdin作为它的实参时,从标准输入读取一个字符。

[b]int getchar( void )  [/b]

//从标准输入stdin读入一个字符,回车后继续执行。

[b]char * fgets(char * str, int num, FILE *stream)[/b]

//从流stream中读入最多num个字符到字符数组str中,当遇到换行符、或读到num-1个字符时停止。自动加上’\0’空字符结尾

[b]char * gets( char * str ) [/b]

//从标准输入stdin读取一个字符串,遇到换行或结束时候终止。不同于fgets,他没有指定num,所以需要注意字符数组str的大小。

说明:getc、getchar都是通过宏定义借助fgetc实现。如getchar的实现为,#define getchar() fgetc(stdin)


getinput()字面意思都能理解,get获取,input输入,程序是让你输入一个地址啊

struct Book *book
就是要你传入地址!!!

同意1楼的说法好吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-9 06:22:06 | 显示全部楼层
临时号 发表于 2022-9-8 23:18
struct Book *book  这不是你自己要求传入一个地址吗

同意,楼主好像没明白老师讲什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-9 15:01:45 | 显示全部楼层
编程追风梦 发表于 2022-9-9 06:21
对于你这个问题,我也是无语了

好,但是不好:没有规定 getc 和(或) getchar 是宏。标准只规定了如果 getc 是通过宏实现的,则其可能(可以)对传入的参数进行多于一次求值,因此向其传递的参数不应该包含副作用;标准对 getchar 的规定则是“与传递了 stdin 参数的 getc 等价”。
在测试中,我使用的实现的 getc 和 getchar 也均不是通过宏实现的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-9 20:47:28 | 显示全部楼层
编程追风梦 发表于 2022-9-9 06:21
对于你这个问题,我也是无语了

可能我没讲清楚我到底不清楚什么,自定义函数我倒是明白,我就是不知道把&b1传上去之后程序怎么运行的,是不是对&b1进行了一次解引用,然后把b1赋值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-9 21:50:03 | 显示全部楼层
wszjb 发表于 2022-9-9 20:47
可能我没讲清楚我到底不清楚什么,自定义函数我倒是明白,我就是不知道把&b1传上去之后程序怎么运行的,是不 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-28 16:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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