scanf("输出控制符",&变量) &是一个取地址的符号
# include<stdio.h>
int main(void)
{
int i;
printf("请输入...\n");
scanf("%d",&i);
printf("i = %d\n",i);
return 0;
/*
-----------vc++6.0中输出的结果------------------
请输入...
12mmmmmmm
i = 12
请输入...
12
i = 12
请输入...
mmm344343434
i = -858993460
心得:
为什么会出现这样得结果呢?原来C语言在执行输入得时候不满足输出控制符得数据都不会录入。所以第二个后面得mmmm就直接省略了。
而如果mmmm在前面得话,系统就会认为你的数据都是错得,就不会把值赋给变量。
------------------------------------------------
*/
}scanf("非输出控制符,输出控制符",&变量)
# include<stdio.h>
int main(void)
{
int i;
printf("请输入...\n");
scanf(",%d",&i);
printf("i = %d\n",i);
return 0;
/*
-----------vc++6.0中输出的结果------------------
请输入...
12
i = -858993460
请输入...
,2
i = 2
请输入...
【】3
i = -858993460
心得:
为什么会出现这样得结果呢?
scanf函数中非输出控制符都要原封不动得输入,否则就会报错。
------------------------------------------------
*/
}在键盘上输入多个变量 scanf("输出控制符输出控制符" ,&变量,&变量)
# include<stdio.h>
int main(void)
{
int i,j;
printf("请输入...\n");
scanf("%d,%d",&i,&j);
printf("i = %d,j=%d\n",i,j);
return 0;
/*
-----------vc++6.0中输出的结果------------------
请输入...
1,2
i = 1,j=2
请输入...
12
i = 12,j=-858993460
请输入...
1;2
i = 1,j=-858993460
心得:
这个和前面讲解的是一样的。任何的非输出控制符都要在输入的时候输入,不然很可能就会进行报错。
第二个输入就是没有在12之间输入非输出控制符导致系统将12认为是一个数赋值给了变量i, 而变量j没有赋值出现垃圾数据
所以说在使用scanf函数的时候不要轻易的添加非输出控制符,或者在前面给用户提示怎么输入数据。
------------------------------------------------
*/
}原文:https://www.cnblogs.com/huao990928/p/12491805.html