在C语言中,scanf
函数用于从标准输入读取数据并存储到变量中。&
符号是取地址运算符,用于获取变量的内存地址。
当使用scanf
函数读取整数类型的数据时,需要使用&
运算符获取变量的地址,并将其作为参数传递给scanf
函数。这是因为scanf
函数需要知道变量的地址以便将读取的值存储在该地址中。
以下是使用scanf
读取整数时需要使用&
运算符的示例:
nt arr[10];
int i;
for (i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
在上面的示例中,&arr[i]
表示获取arr
数组中第i
个元素的地址,并将其传递给scanf
函数。
然而,当使用scanf
函数读取字符串时,不需要使用&
运算符。字符串是由字符组成的字符数组,因此可以直接传递字符串的名称(即字符数组的名称)作为参数给scanf
函数,如下所示:
char str[100];
scanf("%s", str);
在上面的示例中,str
是一个字符数组,可以直接传递给scanf
函数,无需使用&
运算符。
即%d加&,%s不用加
C语言中药传递一个数组作为函数的参数,只用传递数组的名字(即指针