为什么在C语言中,用scanf输入字符串时,不需加&

如题所述

因为字符串变量名在 scanf 语句里 表示指针 (地址)
例如:
char s[80];
scanf("%s",s); --- 这里的s 已是地址。
当然,写成 scanf("%s",&s[0] ); 也可以, &s[0] 是地址。
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-06-01
举例:
char str[256];
scanf("%s",str);
其中str是数组名,已经代表数组的起始地址了,也可以这么写:
scanf("%s",&str[0]);
第2个回答  2016-06-01
这个问题现在告诉你也听不明白。。。追答

等你学了指针才能明白

为什么在C语言中,用scanf输入字符串时,不需加&
因为字符串变量名在 scanf 语句里 表示指针 (地址)例如:char s[80];scanf("%s",s); --- 这里的s 已是地址。当然,写成 scanf("%s",&s[0] ); 也可以, &s[0] 是地址。

为什么在C语言中在调用scanf()为字符数组输入字符串时,输入项是数组名...
scanf输入普通变量时,要求通知计算机输入变量所在的地址是多少,所有加&符号表示相应变量的地址;而输入字符串时,数组名恰好是字符串的首地址,或者说数组的首地址,所有只需要写数组名即可,不需要加&符号

为什么C语言Scanf函数对字符串不要加 取地址运算符&
C语言的字符串为数组形式,而数组的名称可以表示其地址,故对字符串输入不需要加地址符。而单独的字符、整型变量等的名称不能直接表示地址,故需要加地址符。数据类型 字符串数据类型是建模在形式字符串的想法上的数据类型。字符串是几乎在所有编程语言中可以实现的非常重要和有用的数据类型。在某些语言中...

c语言字符串输入输出用加'&'吗
不用加。scanf的参数是指针。所以如果是输入int、double之类的,需要用&;但字符数组名本来就是个指针,所以不用加。printf的时候,输出int、double或字符串都不加&。

c语言中,scanf语句里面什么时候要加&,什么时候不要加&?
1. 在C语言中,使用`scanf`函数进行输入时,如果变量是整型(`int`)或者其他基本数据类型,你需要在变量前加上`&`来获取其地址。这是因为`scanf`需要读取变量的内存地址,以确保数据被正确地存储到该变量中。2. 当你使用指针变量时,情况就不同了。因为指针本身存储的就是另一个变量的地址,所以在...

C语言中scanf(“%s”,m);m前面为什么不用加&??
scanf(“%s”,m);\/\/首先scanf这个函数是按照一定的输入格式从标准输入窗口获取数据,并将其赋值给变量;这里%s 是指输入一个字符串,而此处的m 即是一个字符串变量名,其本身就表示字符串m的首地址;因此无须再加取地址符&;printf("%d%f%s",a,b); \/\/这里没有完整写出参数列表,控制格式与...

C语言中 为什么用scanf在给 数组和字符数组赋值是 数组要加& 而字符...
从scanf函数的函数原型可以看出,scanf接收到的数据是赋给args指向的内存单元的,也即args是一个内存地址,而变量的内存地址用取地址符&来表示,数组的地址就是数组名。所以数组的前面不用加& 举例如下:int a; \/\/ 定义一个变量char b[3]; \/\/ 定义一个字符数组char *str=(char *)malloc(size...

C语言中 用scanf函数输入字符串数组,取地址符&是不用输的,如果输了取...
C语言的字符串为数组形式,而数组的名称可以表示其地址,故对字符串输入不需要加地址符。而单独的字符、整型变量等的名称不能直接表示地址,故需要加地址符。数组名就代表了该数组的地址。整个数组是一块连续的内存单元,数组名所代表的地址为第0个元素的地址,c就代表c[0]的地址。设数组c的首地址为...

c语言中,scanf语句里面什么时候要加&,什么时候不要加&?
这里所说的其实就是一个地址 所以当变量是一个指针或者表示一个地址时就不中& &就是求地址的运算符 如数组名是数组第一权个元素的地址 所以数组名就可以不用加&进行运算 比如 int a;int *p=&a;scanf("%d",p);则不需要使用&运算符

c语言scanf输入字符时scanf(“ %c”,&a[i])&到底加不加?还是字符串加...
char a[10];\/\/望采纳!!!int i=0;\/\/加&与不加&不关类型的事 \/\/以下是几种情况 scanf(" %c",a);\/\/不加,, a是数组,这里a就表示数组a的首地址,所以不用加& scanf("%c",&a [ i ]);\/\/得加 ,a[i]表示a数组的第i个元素,&a[i]就是取数组a的第i个元素的地址所以得加...

相似回答