Oшибка: invalid conversion from ‘int’ to ‘int*’ [-fpermissive] Function1(*A,x,k)
#include <iostream>
using namespace std;
int Function1(int *A, int x, int k)
{
for(int i = 0; i < 6; i++)
{
*A++;
if (*A == x)
{
k = k + 1;
}
}
return 0;
}
int main()
{
int k;
int x = 15;
int Arr[6] = {0, 15, 15, 35, 15, 20};
int *A = Arr;
Function1(*A, x, k);
cout << k << endl;
return 0;
}
Если что, задача состоит в том, что бы через функцию сделать перебор массива на наличие совпадения с числом, и вывести на экран количество совпадений.Используя при этом указатель на массив.
int *A в декларации означает: "A это указатель на int"
У вас есть переменная A,тип ее - int *. В ней хранится какой-то адрес.
Выражение A это адрес, или указатель. Оно подходит для типа аргумента функции, которую вы вызываете.
Выражение *A это само значение, которое лежит в памяти по этому адресу.
Функция требует не значение, а адрес, а вы пытаетесь передать в нее значение. В данном случае - значение первого элемента массива, то есть 0.
Система типов C++ не позволяет вам этого сделать, было бы ошибкой интерпретировать целочисленное значение как адрес.
Продвижение своими сайтами как стратегия роста и независимости