用scanf输入指针+需要&吗

作者&投稿:丑昭 (若有异议请与网页底部的电邮联系)

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

C语言 指针与scanf
首先你只要明白scanf语句中要传的是地址就可以,具体的底层实现你不用管。关于指针,你要知道一个指针类型的变量指向的是一个地址,比如定义一个指针,指向你家的地址,不管你家的房子怎么装修,我只要照着我的地址去找还是能找到你这个房子,假如我修改了这个地址指向的变量,也就是我把你家地址上的...

...scanf("%d",p);",a前面要“&”而对于指针p却不要&,为什么额?_百...
指针本身就是个地址,所以它不用加取地址符号& ,普通的变量,加&表示取地址,就是给它分配一个地址。

scanf函数里的&是什么意思?
int scanf(const char *format, ...);scanf() 函数会根据 format 参数中的格式字符串,将从标准输入设备中读取的数据转换为相应的数据类型。下面是一些常用的格式控制字符串:d:整数(十进制)。f:浮点数。c:字符。s:字符串。p:指针。x:整数(十六进制)。scanf() 函数的返回值是成功读取的...

scanf()函数格式控制符(%d、%f、%c...)和地址指针(&)及输入数据,它们的...
scanf在拿到这些变量后,会根据前面的%d %f做强制类型转换,然后处理,如果%d %f和实际定义的变量不一致,scanf就会做错误的类型转换,最后自然得到错误的结果.对于 &a, 是因为C\/C++的函数的参数是传值的,也就是说如果直接传a给scanf, 它是没办法修改a的值的, 为了让scanf能够根据输入修改a的值, 必须...

c语言中 能否用scanf给指针型变量赋值
应该为scanf("%d",(int)&p),因为你的p没有分配内存空间,不能直接往里面写入值,要和普通整型赋值一样加&

...不能用scanf()函数输入字符串后赋给字符型指针变量?具体请看下面...
char *pc; 只是声明了指针,这个指针没有赋值 也就是它指向的地址还不确定 pc没有初始化 改成 char place[256];char *pc=place;

...要求定义一个3行4列的二维数组(数组内的值用scanf输入)
include <stdio.h> define M 3 define N 4 int main(){ int a[M][N];int (*p)[N];int i,j;p=a;int maxi,maxj,max;for(i=0;i<M;i++){ for(j=0;j<N;j++){ scanf("%d",*(p+i)+j);} } maxi=maxj=0;max=a[0][0];for(i=0;i<M;i++){ for(j=0;j<N;...

C语言中的scanf是什么意思?
h里,因此在使用scanf函数时要加上#include 。(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include 。)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。

scanf接收数据的变量前缺少&会发生什么?
在C语言中,scanf函数用于从标准输入(如键盘)或者其他数据源中读取数据,并将读取的数据存储在变量中。当你使用scanf时,你需要在变量前加上&符号,这是因为scanf需要一个指向存储位置的指针,以便知道在哪里存储输入的数据。如果你没有在变量前加上&,scanf会尝试将数据存储在变量所在的内存地址,这...

尉燕18925824486问: c语言中输入两个整数,输出后值互换,为什么scanf中要用&,否则错误 -
鄂温克族自治旗通滞回答: &是地址符,scanf是C语言的输入函数,你输入的要在内存的具体地址,所以要加&,其实初学的话不用研究这些,你可以把它当成是种规定.

尉燕18925824486问: scanf("%f",&f)为啥要加& -
鄂温克族自治旗通滞回答: &为取地址运算符,如果是普通变量,必须用,如果不用,则无法赋值,示例如下: int a;scanf("%d",&a); 如果为数组、指针或字符串,就要看情况了: int a,*p;p=&a;scanf("%d",p);

尉燕18925824486问: C中给变量赋值时,用scanf为什么变量前面要加&呢? -
鄂温克族自治旗通滞回答: 变量前加&是取地址的意思scanf的赋值是通过找到变量的地址去赋值的.与c++的输入输出流不同.

尉燕18925824486问: C语言中有SCANF后的括号中为什么要加& -
鄂温克族自治旗通滞回答: 写进内存的意思

尉燕18925824486问: C语言中scanf后面,符号&的使用问题 -
鄂温克族自治旗通滞回答: scanf需要指针做参数,printf需要数值做参数.你代码中是printf,当然没问题.scanf需要指针做参数,如果是非指针变量,那么需要使用地址符,转换为指针类型接收,如果是指针变量(包括字符串数组),那么直接用指针变量接收,不需要地址符.int a; char b[10]; double *c = new double; scanf("%d",&a); scanf("%s",b); scanf("%f",c);

尉燕18925824486问: c语言中输入函数scanf(“%d”,&a)中的&作用是取地址,那么如果删去呢?是必须要加&吗 -
鄂温克族自治旗通滞回答: int main() {int a;scanf("%d",a); //你确定这样写不报错?printf("\n%d",a);return 0; }加不加&是由前面的函数定的, scanf("",); 第二个参数要求是地址, 所以要加&取地址符, 如果你定义的变量是指针类型, 就不用加&

尉燕18925824486问: C语言中,"scanf("%d",&a);" “scanf("%d",p);",a前面要“&”而对于指针p却不要&,为什么额? -
鄂温克族自治旗通滞回答: 指针本身就是个地址,所以它不用加取地址符号& ,普通的变量,加&表示取地址,就是给它分配一个地址.

尉燕18925824486问: scanf("%d",&a); 为什么要在a前加一个“&" 而printf("%d",a);就不用 -
鄂温克族自治旗通滞回答: Printf 的时候,是输入啊,还没有赋予地址呢,scanf是输出,这时候a有地址啦,and符号表示地址

尉燕18925824486问: C语言中 为什么用scanf在给 数组和字符数组赋值是 数组要加& 而字符串却不加& -
鄂温克族自治旗通滞回答: 可以从scanf函数的函数原型来进行解释.函数原型:int scanf(char *format, args, ...); 功 能:从标准输入设备按format指定的输入格式将数据输入到args所指向的内存单元 返 回 值:读入并赋给args的数据个数.遇文件结束返回EOF,出错返...

尉燕18925824486问: scanf %s 输入数组时,为什么可以用& -
鄂温克族自治旗通滞回答: 就是存放首地址指针的地址. 如:数组a[10], 内存:0x20是a的首地址 0x10是存放指向a的首地址的指针的值 &a就是指0x10


本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网