1
嘿,我試圖打印使用函數和指針數組中的最大元素。下面是我的代碼,但它的打印垃圾值。請幫忙。試圖打印數組的最大值..但打印垃圾
void findmax(int arr[],int,int*);
void findMax(int arr[], int n, int* pToMax)
{
if (n <= 0)
return; // no items, no maximum!
int max = arr[0];
pToMax = &arr[0];
for (int i = 1; i < n; i++)
{
if (arr[i] > max)
{
max = arr[i];
pToMax = (arr+i);
}
}
}
int main()
{
int nums[4] = { 5, 3, 15, 6 };
int *ptr;
findMax(nums, 4, ptr);
printf("The maximum is at address %u\n", ptr);
printf("It's at index %d\n",ptr - nums);
printf("Its value is %d\n", *ptr);
}
耶做到了自己的方式,但它的打印的第一個元素爲最大。另外* ptomax將存儲值(作爲指針工作),爲什麼存儲地址? – Crayator
@Devlin沒有它沒有看到[這裏](http://ideone.com/Rq2ZAJ) – P0W
你不認爲傳遞ptr就像傳遞地址...因爲它的所有指針和ptr都會通過地址本身。如果我錯了,請解釋。 – Crayator