for (x=1;x<4;x++)
{
for (y=1;y<5;y++)
{
if (x==1)
{
feld[1][y] = y;
printf("Feld gespeichert: %d",&feld[1][y]);
}
else
{
feld[x][y] = 0;
}
}
}
输出结果为:
Feld gespeichert: 915094680Feld gespeichert: 915094684Feld gespeichert: 915094688Feld gespeichert: 915094692S
声明:
int main(void)
{
int x,y,groesse;
int feld[4][5]; // Initialisierung Spielfeld und Schleifenvar
(...)
我似乎无法弄明白为什么。 for循环将y递增1,而不是1.321252151252151或任何东西,无论y是整数。为什么我会得到这些奇怪的值?
答案 0 :(得分:5)
您正在打印地址,而不是值。
放弃&
:
printf("Feld gespeichert: %d", feld[1][y]);
此外,请确保您已启用所有编译器警告,您的代码应至少产生一个警告(该地址与期望%d
的{{1}}格式说明符不兼容)。