scanf(“%s“,str);与scanf(“%s“,&str的理解

"本文详细介绍了C语言中的scanf函数,包括其工作原理和返回值含义。讨论了使用&和不使用&在传递数组参数时的区别,并通过实例解释了为何在读取字符串时,`scanf("%s", str)`和`scanf("%s", &str)`的输出结果相同。文章旨在帮助读者深入理解C语言中的指针和输入输出操作。"
摘要由CSDN通过智能技术生成

1.scanf的理解

scanf和wscanf都返回成功转换和分配的字段的数量;返回值不包括已读取但未赋值的字段。返回值为0表示没有分配字段。如果出现错误,或者在第一次尝试读取字符时遇到文件结束符或字符串结束符,则返回值为EOF。

2.关于有&和没有&的区别

会发现&a的是直接加了个整体(10个字节),而a或a[0](为一个字节)
如图
在这里插入图片描述

3.为什么scanf(“%s”,str);和scanf(“%s”,&str);输出是一样的?

对数组来说a数组首元素的地址和&a都指向数组的首地址,这两个地址值上来说一样。主要原应为是scanf和wscanf都返回成功转换和分配的字段的数量通俗来讲scanf接收一长串字符后,都按这个地址一一往后填字符所以说它们输出的是一样的。
————————————————————————————————————————————
(希望各位大佬可以指出我的问题谢谢)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

(Morgan)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值