#include <stdio.h>voID main() { int a; printf("enter integer:"); scanf("%d",a);}解决方法 &在C中是一个返回 *** 作数地址的运算符.可以这样考虑一下,如果你只是给scanf变量a而没有&,它将通过值传递给它,这意味着scanf将无法设置它的值供你看.通过引用传递它(使用&实际将指针传递给a)允许scanf设置它,以便调用函数也可以看到更改.
关于具体的错误,你无法真正说出来.行为未定义.有时,它可能会默默地继续运行,而您不知道scanf在程序中的某处更改了某些值.有时它会导致程序立即崩溃,就像在这种情况下:
#include <stdio.h>int main(){ int a; printf("enter integer: "); scanf("%d",a); printf("entered integer: %d\n",a); return 0;}
编译它显示了这个:
$gcc -o test test.ctest.c: In function ‘main’:test.c:6: warning: format ‘%d’ expects type ‘int *’,but argument 2 has type ‘int’
并执行显示分段错误:
$./test enter integer: 2Segmentation fault总结
以上是内存溢出为你收集整理的scanf函数如何在C中工作?全部内容,希望文章能够帮你解决scanf函数如何在C中工作?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)