Станислав Макаров:
#include
#incude
using namespace std;
int main()
{
setlocale(0,"");
int* ptr;
ptr=find(arr, arr+8,33);
cout<<"Первый объект со значением 33 найден в позиции "<<(ptr-arr)<
#include <iostream>
#incude <algorithm>
using namespace std;
int main()
{
setlocale(0,"");
int* ptr;
ptr=find(arr, arr+8,33);
cout<<"Первый объект со значением 33 найден в позиции "<<(ptr-arr)<<endl;
system("pause");
return 0;
}
ошибка:
fatal error C1021: недопустимая команда препроцессора 'incude'
MiiNiPaa: жутко стыдноо мне. Я задам Вам тут сразу задам вопрос, полный код:
#include <iostream>
#include <algorithm>
using namespace std;
int arr[]={11,22,33,44,55,66,77,88};
int main()
{
setlocale(0,"");
int* ptr;
ptr=find(arr, arr+8,33);
cout<<"Первый объект со значением 33 найден в позиции "<<(ptr-arr)<<endl;
system("pause");
return 0;
}
Результат такой: Первый объект со значением 33 найден в позиции 2.
Вопрос: если вместо (ptr-arr) поставить (ptr), выводится какой-то адрес, например 00F5900C.
Почему? Что здесь значит arr?
amalchikov: arr это имя массива, которое трансформируется в указатель на первый элемент. Значение которое вы видите это разница между указателем на элемент и указателем на первый элемент, ака количество элементов между ними или номер элемента. Адрес выводится, потому что ptr это указатель, ака адрес переменной.