为什么以下程序给出了意外的输出。
static int x[] = {1,2,3,4,5,6,7,8};
int i;
for (i = 2; i < 6;++i)
{
x[x[i]] = x[i];
}
for (i = 0; i < 8;++i)
{
printf("%d",x[i]);
}
}
我希望它是 1 ,2 3,4,5,6,7,8 但编译器说:1,2,3,3,5,6,7,8。
顺便问一下,static
对数组性能有什么影响?
最佳答案
x[x[i]] = x[i];
i =2;
x[2] = 3;
x[3] = x[2];
x[3] = 3;
因此您会看到此输出。您在内部循环中递增 i
,因此您将看到外部循环仅执行一次。
关于c - 存在 static 关键字时出现意外输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27189529/