这个C程序编译显示没有错误,为什么不能运行?
#include"stdio.h"intmain(void){printf("%c\n",getchar());return0;}...
#include "stdio.h"
int main (void)
{
printf("%c\n",getchar());
return 0;
} 展开
int main (void)
{
printf("%c\n",getchar());
return 0;
} 展开
2个回答
2016-07-18 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
nt a,b; scanf("%d%d",&a,&b);//参数必须是指针(地址)才可以。 scanf()函数要求参数必须是指针类型,即将地址传输到其内,才可以让a , b变量中获取到数据。 如果你学过指针,你就会理解了。 C语言中函数的调用中,参数传递,只能传递数值。如果只是将数值传递过去(接收者是形参),在子函数中变化,形参的变化,不会影响到实参数据的内容。 C中,每定义一个变量,系统都会在内存中给其分配一个空间用来存储数据。而这个空间的编号就是这个变量的地址。当我们将这个地址传递到子函数中,子函数在操作数据时,就会改变这个地址中的数据,这样,实参的数据是会发生变化。 而你程序中,传递的是a b本身的值(可能是0,可能是1,可能是任意的数),scanf()将这两个值当作地址去操作,因此会产生系统错误,导致程序运行停止。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询