2 qq 31715799 qq_31715799 于 2016.01.22 01:36 提问

关于scanf对于数组的输入问题。

10、考虑以下声明:
double mint[10];
d.下面哪个对该数组正确地使用了scanf()?
i.scanf("%lf", mint[2]);
ii.scanf("%lf", &mint[2]);
iii.scanf("%lf", &mint);
答:
d.ii
为什么i不行,mint[2]难道不是代表一段地址么?。。不懂了。

3个回答

caozhy
caozhy   Ds   Rxr 2016.01.22 02:49
已采纳

ii.scanf("%lf", &mint[2]);
iii.scanf("%lf", &mint);
都是对的。

mint[2]传进去的是实际的值。

u014167893
u014167893   2016.01.22 08:49

只有ii对,mint[2]相当于一个变量,并不是地址,而mint是表示数组首地址,所以不需要加取地址符

91program
91program   Ds   Rxr 2016.01.22 08:43

mint[2] 是一个变量
mint 或者 &mint[2] 是地址

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
狗日的scanf-------------关于不定长度的数据输入到数组
每次玩C语言的时候,看到scanf都他妈的一肚子火,我觉得当初设计scanf的大牛脑子都不正常,搞得我们这些菜鸟晕头转向,仔细研究你会发现scanf的规则之多让人蛋疼,稍不注意你就得不到你想要的输入结果。 今天我想说下关于很多人会问的 不定长的数据输入到数组的情况,网上搜了很多,很多人的答案我也运行过,都不正确,跟同学讨论了会,得出一个反正我在VS上运行通过的版本。 比如:1 2 3 4
c语言中,scanf里面要是数组要不要加&?
其实你明白原理就觉得很简单了。  首先,你要知道scanf传入的必须是指针,也就是地址。 比如int  a, 就要写成&a。 但是如果是数组,数组符号表示的就是数组的首地址(更准确的说,数组本身表示的是数组首元素的地址)。 int a[10];a就表示a[0]的地址;那a[3]的地址呢? 可以这样,&a[3]; 这就是加&的数组,如果不加呢
关于scanf要写两次的问题
那是因为scanf("%d",&n);双引号里面有空格,把多余的空格删掉就可以正确输入了。
scanf输入数组问题
输入学生的信息#include main() { struct { int num; char name[20]; char sex; int age; }stu[5]; int i; for(i=0;i<5;i++) { printf(
[C]c语言中,scanf里面要是数组要不要加&?
先上一段代码给大家看下#include<stdio.h> int main(){ int a[100]; int n,i; scanf("%d",&n);//输入个数 for(i=0;i<n;i++)scanf("%d",&a[i]);//这里也可以用 scanf("%d",a+i); for(i=n-1;i>0;i--)printf("%d ",a[i]); printf("%d\n",a[i])
调用scanf函数,并从键盘想数组输入数据
//调用scanf函数,并从键盘想数组输入数据#include #include int main() { int x[5]; int i; for(i=0;i<6;i++) { printf("请输入x[%d]的整数值:",i); scanf("%d",&x[i]); printf("\n"); } for(i=0;i<6;i++) { printf("x[%
C语言中关于字符数组输入,scanf没执行
问题:有时C语言中关于字符数组输入,有的scanf语句没执行。未执行scanf的代码:#include&amp;lt;stdio.h&amp;gt;int main(){ int n; int t=0; scanf(&quot;%d&quot;,&amp;amp;n); char arr[n]; int i; for(i=0;i&amp;lt;n;i++) { scanf(&quot;%c&quot;,&amp;amp;arr[i]); } printf(&quot;%c\n&quot;,ar...
关于c语言scanf函数中格式化输入中加入空格的一个问题
考虑如下一小段程序: #include&amp;lt;stdio.h&amp;gt; int main() { int i = 0; int num[5]; for(i = 0;i &amp;lt; 5;i++){ scanf(&quot;%d &quot;,&amp;amp;num[i]); printf(&quot;num[%d]:%d\n&quot;,i,num[i]); } retu...
在函数中利用scanf为结构体数组赋值
结构体数组指针作为函数参数,通过数组的首地址与偏移量对结构体数组进行scanf的赋值,在函数中通过指针间接访问到其指向的内存 程序当中,编写函数,输入5个学号(int),5个姓名(字符串),5个成绩数组(每组三个成绩)(int[3]),依次调用函数,最后打印 #include #include struct student  //建立结构体,学号,姓名,3门课的分数
scanf的安全输入问题
引入:华为的一道经典面试用老师的话说,如果你脱口而出答案是5,那么你连C语言们都还没摸到,眼尖的同学会看出数组溢出了,但至于结果怎么算却搞不明白。至于大神吗,分分钟得出答案。好了别的不多扯,我们看看这个到底怎么算。 结果:i=6776421 进入到内存中分析: 连续定义的变量,内存地址一般也相邻 首先依次在栈区为变量开辟空间(注意方式,整形是4个字节以计算,char型一字节一计算) 越界后