int a[ ]={1,3,5,7,9}; int x=0,y=1, *ptr; ptr=&a[1]; while(!x) { y+=*(ptr+x); x++; }为什么y输出是4
时间: 2024-04-27 15:24:09 浏览: 74
二级C语言 机考 总结 01.pdf
因为在 while 循环中,指针 ptr 指向了数组 a 的第二个元素,即 a[1],并且在每次循环中,y 的值都会增加 ptr+x 所指向的数组元素的值。因此,在第一次循环中,x 的值为 1,ptr+x 所指向的数组元素为 a[2],其值为 5,因此 y 的值为 1 + 5 = 6。在第二次循环中,x 的值为 2,ptr+x 所指向的数组元素为 a[3],其值为 7,因此 y 的值为 6 + 7 = 13。在第三次循环中,x 的值为 3,ptr+x 所指向的数组元素为 a[4],其值为 9,因此 y 的值为 13 + 9 = 22。在第四次循环中,x 的值为 4,循环条件 !x 的值为 0,循环结束,最终 y 的值为 22,而不是 4。因此,该程序存在错误,y 不应该输出 4。
阅读全文