为什么我们需要放一个&
运算符在scanf()
用于将值存储在整数数组中,但不能将字符串存储在字符数组中?
int a[5];
for(i=0;i<5;i++)
scanf("%d",&a[i]);
but
char s[5]; scanf("%s",s);
我们需要传入存储值的位置的地址,因为数组是指向第一个元素的指针。所以在 int/float 数组的情况下,它基本上意味着(a+i)
.
但是字符串的情况又如何呢?
scanf 接受一个指向您要放入值的内容的指针。在第一个实例中,您传递对整数数组中位置 i 处的特定 int 的引用。在第二个实例中,您将整个数组传递给 scanf。在 C 语言中,数组和指针是同义词,可以(某种程度上)互换使用。变量 s 实际上是一个指向内存的指针,该内存有 5 个字符的连续空间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)