请问这个的输出结果为什么一直是-858993460呢?

void bubble_sort(int arr[], int sz)
{
int i = 0;
for (i = 0; i < sz - 1; i++)
{
int j = 0;
for (j = 0; j < sz - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
int main()//用冒泡排序排列数组
{
int arr[] = { 9,8,7,6,5,4,3,2,1,};
int i = 0;
int sz = sizeof(arr) / sizeof(arr[0]);
bubble_sort(arr, sz);//冒泡排序
for (i = 0; i < sz; i++);
{
printf("%d\n", arr[i]);
}
return 0;
}

for (i = 0; i < sz; i++);
去掉for语句后面的分号

for (i = 0; i < sz; i++); 最后有个分号,估计是无意间加的,导致了预期结果错误,去掉就好了


for (i = 0; i < sz; i++);
//此后i为9,数组越界所以输出-858993460,

printf("%d\n", arr[9]);
//正确做法
for (i = 0; i < sz; i++)
{
 printf("%d\n", arr[i]);
}

for (i = 0; i < sz; i++); 最后有个分号,变量i 在for 循环之后变成了9,后面printk 是数组就会越界

跟一楼