请问,这段代码有什么问题。它应该打印到 y[4] 然后退出 while 循环,但它打印到 y[12] 并从那里中断;我认为在 y[5] 到 y[12] 之间打印是错误的。取自一个网站作为示例,指针运算仅限于数组元素和一个元素之外的元素。
#include <stdio.h>
int main()
{
int i = 0;
int x[5] = {0, 1, 2, 3, 4};
int y[5];
int *ptr = x;
while (&y[i] != (ptr+5)){
y[i] = x[i];
printf("Value of y[%d] is : %d\n", i, y[i]);
i++;
}
return 0 ;
}