为什么我在定义变量时,漏掉地址运算符"&",TurboC2.0不?
      在中,为什么我在定义变量时,漏掉地址运算符"&".我用Turbo C 2.0编译此程序时,为什么编译器不报错?(我执行的是Run命令)而执行时又不能定义变量.变量是几个随机数,每次都是这样. 程序如下: main() { int a,b,c,d; printf("\nPlease input two integer and delimited with space:") ; scanf("%d%d",a,b) ; c=a; d=b; printf("%d,%d",c,d); getch();
先声名,你的错误应该是在scanf函数中,而不是在变量声名的地方。 你的问题的关键在于scanf函数和C语言的自动转换机制。scanf函数的原形是 int scanf (const char *format, ...); 可以看到后面的参数中并没有明确的指出参数的类型,这交给了函数内部的代码来处理,所以C的编译器其实对scanf函数后面的参数究竟是什么不太关心,它只关心形式是否正确而已。所以编译的时候也就不会出错了。