int maxOfArray(int array[])
{
//这里报错
printf("$d\n",sizeof(array));//打印出的数值是8,这个后面会讲的,想要数组长度只能去main里
//int length=sizeof(array)/sizeof(int);
// 1.定义一个变量存储最大值(默认就是首元素)
int max = array[0];
// 2.遍历所有元素,找出最大值
for (int i = 1; i<length; i++)
{
if (array[i] > max)
{
max = array[i];
}
}
return max;
}作者: 魅影穿眸 时间: 2014-4-27 18:37
int length=sizeof(array)/sizeof(int)
sizeof(array) = 4
sizeof(int) = 4结果为1
而你for (int i = 1; i<length; i++)这句话执行完就没有循环,所以报错作者: sabjiang 时间: 2014-4-27 19:07
还是内存那一块的东西没吃透应该,数组的内容存放在堆中,数组名只是存放在栈中,是对数组地址的引用,其中的值是数组首个元素在内存中的地址,不知道这么说是否准确作者: 桑托尔 时间: 2014-4-27 19:37 本帖最后由 桑托尔 于 2014-4-27 19:39 编辑