Trong bài toán viết hàm trả về giá trị lớn nhất trong mảng một chiều có sử dụng con trỏ, mình viết như sau:
#include <iostream>
using namespace std;
int getMaxValue( int n, int *ptr) {
int max=ptr[0];
for (int i=0; i<n; i++) {
if (ptr[i]>max) max=ptr[i];
}
return max;
}
int main() {
int n;
cin >> n;
int arr[n];
int *ptr=arr;
for (int i=0; i<n; i++) {
cin >> arr[i];
}
cout << getMaxValue(n, ptr) << endl;
return 0;
}
Giá trị của ptr
, arr,
&arr
hay &arr[0]
đều là địa chỉ của phần tử đầu tiên trong mảng.
Mình muốn hỏi là ở chỗ truyền giá trị vào cho hàm
getMaxValue(n, X);
nếu để X là ptr
hoặc arr
hoặc &arr[0]
đều chạy chương trình được, nhưng để X là &arr
thì báo lỗi “No matching function”, vì sao vậy ạ?