重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这个问题很常见,正是因为使用了getchar()函数,getchar()函数只会从标准输入缓冲区中读取一个字节,剩下的还留在缓冲区,比如你输入"a",那么getchar()函数值读取'a',而不会处理你按下的回车,也就是'\n'还留在标准输入缓冲区,那么,等第二次调用getchar()的时候,由于缓冲区里还有1个字节的'\n'未使用,故getchar()会使用字符'\n'而不会阻塞等待输入
创新互联公司公司2013年成立,是专业互联网技术服务公司,拥有项目做网站、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元眉山做网站,已为上家服务,为眉山各地企业和个人服务,联系电话:18982081108
建议在第二个getchar()前加上一句:
fflush(stdin);
因为m,i是静态局部变量,静态局部变量是这样的:第一次运行子程序时,zhidao执行初始化,子程序结束时,静态局部变量的存储空间不会被内回收,也就是说它们的值会被保存起来。第二次运行子程序时,不再初始化静态局部容变量了,而是直接调用,然而上一次运行后的值被保存下来了,所以就会用第一次的m,i值了
一个函数只能有一个返回值,指针可以返回多个,例如:
void aaa()
{
int *a,*c;
int a,c;
*a=a;*c=c;
a=b();c=b();
}
下面调用 *a和*c.
扩展资料:
在C语言中,指针的使用非常广泛,因为使用指针往往可以生成更高效、更紧凑的代码。总的来说,使用指针有如下好处:
1、指针的使用使得不同区域的代码可以轻易的共享内存数据,这样可以使程序更为快速高效;
2、C语言中一些复杂的数据结构往往需要使用指针来构建,如链表、二叉树等;
3、C语言是传值调用,而有些操作传值调用是无法完成的,如通过被调函数修改调用函数的对象,但是这种操作可以由指针来完成,而且并不违背传值调用。
参考资料来源:百度百科-指针 (编程语言中的一个对象)