一个小问题,求帮助!!
这个是C语言小甲鱼第32节的课后作业,这里是需要自己写一个bogo_sort的函数,然后在课后答案里面bogo_sort函数是定义为void的,但是这里数组array作为实参传递到了函数里面,为什么函数运行结束以后,数组array里面的值就改变了呢?这里并没有任何的返回值,为什么数组array不是输出原来的值呢?int main(void)
{
int array[] = {73, 108, 111, 118, 101, 70, 105, 104, 67};
int i, length;
time_t begin, end;
begin = time(NULL);
length = sizeof(array) / sizeof(array);
bogo_sort(array, length);
printf("排序后的结果是:");
for (i = 0; i < length; i++)
{
printf("%d ", array);
}
putchar('\n');
end = time(NULL);
printf("总共耗时:%ld秒\n", end - begin);
return 0;
}
数组作为参数传递到函数中时,是将其地址传进去,所以修改的时候是直接找到其地址直接修改 像其他类型的数据通过取址符也可以实现
https://static01.imgkr.com/temp/f4e348665c4f4744a5fb18b433b5bf7f.jpg 大马强 发表于 2021-8-3 19:04
数组作为参数传递到函数中时,是将其地址传进去,所以修改的时候是直接找到其地址直接修改
好的,明白了,感谢
页:
[1]