这个C程序编译显示没有错误,为什么不能运行?

#include "stdio.h"
int main (void)
{
printf("%c\n",getchar());
return 0;

}

nt a,b; scanf("%d%d",&a,&b);//参数必须是指针(地址)才可以。 scanf()函数要求参数必须是指针类型,即将地址传输到其内,才可以让a , b变量中获取到数据。 如果你学过指针,你就会理解了。 C语言中函数的调用中,参数传递,只能传递数值。如果只是将数值传递过去(接收者是形参),在子函数中变化,形参的变化,不会影响到实参数据的内容。 C中,每定义一个变量,系统都会在内存中给其分配一个空间用来存储数据。而这个空间的编号就是这个变量的地址。当我们将这个地址传递到子函数中,子函数在操作数据时,就会改变这个地址中的数据,这样,实参的数据是会发生变化。 而你程序中,传递的是a b本身的值(可能是0,可能是1,可能是任意的数),scanf()将这两个值当作地址去操作,因此会产生系统错误,导致程序运行停止。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-07-18
你按回车了嘛追问

点运行是就显示这个东西。

追答

。。。那你这也算是编译时的链接错误啊,你的代码是不是定义了两次 int main

相似回答