我真的不知道出了什么问题。这可能是非常简单的事情,但我无法找到错误。我在C中写了这个非常简单的程序:
#include<stdio.h>
int main(void) {
int n;
scanf("%d", &n);
printf("\n%d", &n);
return 0;
}
但是当我跑步时,这就是我得到的:
1 // My input
-1936471972
我做错了什么?
提前致谢!
答案 0 :(得分:2)
我发布其他人已经指出的内容:
int main(void) {
int n;
scanf("%d", &n);
printf("%d\n", n);
^^ ^
return 0;
}
如果您只想显示变量的值(基本上是打印变量的地址)并移动{{},请从&
移除&n
1}}按照Weather Vane的说明打印变量后。
答案 1 :(得分:0)
使用
printf("%d\n", n);
而不是
printf("\n%d", &n);
答案 2 :(得分:0)
if(myObject.Is( '.example' )
{
//Do stuff
}
将变量地址作为参数,但scanf
获取变量值。尝试将行更改为
printf
答案 3 :(得分:0)
我真的不知道出了什么问题。
printf("\n%d", &n);
使用"%d"
的打印说明符,期望int
。 &n
是int
的地址。真正有用的是现代编译器和编译器及其警告功能很好,会自动警告此错误。这可以节省您的时间!不需要SO帖子。
精通编码人员使用像编译器这样的工具,可以很好地启用警告,并专注于编译器无法检测到的细微问题。使用printf("\n%d", n);
或printf("%d\n", n);
可能会解决当今的小问题,但使用更好的编译环境确实可以从中学习。