jmfs.net
当前位置:首页>>关于c语言中,scanf里面要是数组要不要加的资料>>

c语言中,scanf里面要是数组要不要加

数组不要 加&表示地址 数组本身就是一个地址,所以没有必要再加了 有加的话应该是双地址,就是地址的地址.

数组分为两种 一种是char 类数组, 可以作为字符串输入 这种 不需要加&,用%s输入 另一种, 是其它数组,要逐个元素输入 需要加& 比如 &a[3] 输入a[3] 如果要输入a[0]可以直接用a 或者用&a[0]

逐个输入数组中的数,是要用&的,但是如果是字符数组,以字符串形式整体输入,就不用,示例: #include<stdio.h>int main(){int n;int t=0;scanf(“%d”,&n);char arr[n];int i;for(i=0;i<n;i++){scanf(“%c”,&arr[i]);}printf(“%c\n”,arr[0]);for(i=0;i<n;

&叫取地址符,如果你本身定义的是一个指针或一维数值的话,就不用加&,定义的是一个int,char等值的话就加&.(不完全是这样) 我想你可能是看到数组没加&才提的问吧!我也只是猜想,如果是的话等你学到指针与数组的关系你应该就明白了!

格式:scanf("格式控制字符串",地址列表);int a[2],b; scanf("%d",a); //正确.因为数组名本身就代表数组的首地址,即a[0]的地址 scanf("%d",&a); //错误.因为a本身就代表地址了 scanf("%d",&b); //正确.&b表示取出变量b的地址

取&表示指针,数组本身就是指针,所以不需要加&

可以,但是输入数据的时候一定也要加上逗号.用scanf()读取数据时,输入的格式必须和scanf()的格式控制字符串对应,比如说:1、scanf("%d,%d",&a,&b);因为两个%d之间有一个逗号,所以在输入时两个整数之间只能用逗号分隔,如果用其它符号分隔就会出错(比如说此时用空格、回车分隔就会出错)2、scanf("%d%d",&a,&b);这个格式控制字符串就可以用空白分隔(空格,回车都可以)

这种写法是错误的,scanf的调用格式为: scanf("",); 第二个参数是地址,要用取地址符& 如果a是一个数组,那么数组名本身(a)就代表了数组a的首地址,这本身就是一个地址了 但q是一个char型的变量,不是数组,因此要用&q取q的地址

scanf(" %s ",a);&是取地址符,表示这里是存储一个字符的地址 .但在这里 a 作为一个数组名,它是一个常量指针,表示的也就是一个地址.

因为字符串变量名在 scanf 语句里 表示指针 (地址) 例如:char s[80]; scanf("%s",s); --- 这里的s 已是地址.当然,写成 scanf("%s",&s[0] ); 也可以, &s[0] 是地址.

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.jmfs.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com