黑马程序员技术交流社区

标题: scanf运行原理 [打印本页]

作者: pingfan183    时间: 2014-11-1 23:33
标题: scanf运行原理

//接收多个数字的问题
// int a=-1,b=-1;
// scanf("%d%d",&a,&b);
// printf("a = %d,b = %d\n",a,b);

//接受指定的位数的问题
// int a=-1;
// scanf("%5d",&a);
// printf("a = %d\n",a);

//字符混和输入
// int a=-1;
// char ch;
// scanf("%d#%c",&a,&ch); //","是一个普通的分隔符 ,输入数据的时候也要用“,”分隔
//// scanf("%d%c",&a,&ch); //有问题的,涉及到scanf的运行原理
// printf("a = %d,ch = %c\n",a,ch);


//关于\n问题 ,

// int a= -1;
// scanf("%d\n",&a); // \n 换行符,尽量避免这种写法
// printf("a = %d\n",a);




作者: 大米米    时间: 2014-11-3 20:21
// scanf("%5d",&a);
  这里为什么%后边是5???
作者: jy02305403    时间: 2014-11-3 21:40
接受多个数字是建议用分隔符分开,另外有个我不了解的问题请教一下,为什么定义的变量一开始就给赋值-1.我平时这类型接受都是不赋值的,一样没问题,求解!
作者: pingfan183    时间: 2014-11-3 23:07
jy02305403 发表于 2014-11-3 21:40
接受多个数字是建议用分隔符分开,另外有个我不了解的问题请教一下,为什么定义的变量一开始就给赋值-1.我 ...

初始化也可以是0,至于为什么要初始化,是因为不初始化得到的数是垃圾值,如果要是用指针的话,由于没初始化,指针改的有可能是系统的地址,会造成系统崩溃
作者: jy02305403    时间: 2014-11-4 07:39
pingfan183 发表于 2014-11-3 23:07
初始化也可以是0,至于为什么要初始化,是因为不初始化得到的数是垃圾值,如果要是用指针的话,由于没初 ...

还没学到指针,谢谢你的提醒!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2