C语言,输出的y为什么是19

int a[]={2,4,6,8,10}
int y,x,*p;
p=&a[1];
for (x=0;x<3;x++)
y+=*(p+x);
printf (%d\n,y);
return 0;
输出的y为什么是19
5+7+9为什么不对

这个题本身就有问题,y没有初始化
假设y初始值为0
for循环共三次
第一次y = y+4 = 4
第二次y = y+6 = 10
第三次y = y+8 = 18
输出19就奇怪了,只能说y值正好初始随机等于了1

5,7,9是哪来的
p一开始是4,p+x一开始指向4,p+1指向了6,p+2指向了8,这里加的是指针不是值呀
所以应该是4+6+8
你 的y没有初值,是个随机数,所以最终y是几都有可能,也有可能是-10086