为什么在C语言中在调用scanf()为字符数组输入字符串时,输入项是数组名...
scanf输入普通变量时,要求通知计算机输入变量所在的地址是多少,所有加&符号表示相应变量的地址;而输入字符串时,数组名恰好是字符串的首地址,或者说数组的首地址,所有只需要写数组名即可,不需要加&符号
C语言中 为什么用scanf在给 数组和字符数组赋值是 数组要加& 而字符...
从scanf函数的函数原型可以看出,scanf接收到的数据是赋给args指向的内存单元的,也即args是一个内存地址,而变量的内存地址用取地址符&来表示,数组的地址就是数组名。所以数组的前面不用加& 举例如下:int a; \/\/ 定义一个变量char b[3]; \/\/ 定义一个字符数组char *str=(char *)malloc(siz...
为什么C语言Scanf函数对字符串不要加 取地址运算符&
C语言的字符串为数组形式,而数组的名称可以表示其地址,故对字符串输入不需要加地址符。而单独的字符、整型变量等的名称不能直接表示地址,故需要加地址符。数据类型 字符串数据类型是建模在形式字符串的想法上的数据类型。字符串是几乎在所有编程语言中可以实现的非常重要和有用的数据类型。在某些语言中...
为什么在C语言中,用scanf输入字符串时,不需加&
因为字符串变量名在 scanf 语句里 表示指针 (地址)例如:char s[80];scanf("%s",s); --- 这里的s 已是地址。当然,写成 scanf("%s",&s[0] ); 也可以, &s[0] 是地址。
c语言字符串输入输出用加'&'吗
不用加。scanf的参数是指针。所以如果是输入int、double之类的,需要用&;但字符数组名本来就是个指针,所以不用加。printf的时候,输出int、double或字符串都不加&。
C语言中 用scanf函数输入字符串数组,取地址符&是不用输的,如果输了取...
C语言的字符串为数组形式,而数组的名称可以表示其地址,故对字符串输入不需要加地址符。而单独的字符、整型变量等的名称不能直接表示地址,故需要加地址符。数组名就代表了该数组的地址。整个数组是一块连续的内存单元,数组名所代表的地址为第0个元素的地址,c就代表c[0]的地址。设数组c的首地址为...
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("<格式化字符串>",<地址表>);函数返回值:scanf()函数操作成功时,返回成功赋值的数据项数,出错时则返回EOF。格式...
scanf函数 字符串输入问题
第一个问题:scanf 函数后一个参数实际上是地址,而数组名的真正含义就是一个地址,所以不用加&取地址运算符。第二个问题:scanf("%s",&c);\/\/表示你要取C的地址,而c如果是一个变量,就可以取出地址,总之你要明白scanf后一个参数实际上是地址,c 和&c的区别在于,c本身是不是地址。