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

1.scanf的理解

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

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

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

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

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