Гулял по Хабру и наткнулся на этот код.
int arr[] = {1,2,3};
std::for_each(&arr[0], &arr[0]+sizeof(arr)/sizeof(arr[0]), [](int n) {std::cout << n << std::endl;});
auto is_odd = [](int n) {return n%2==1;};
auto begin = &arr[0];
auto end = &arr[0]+sizeof(arr)/sizeof(arr[0]);
auto pos = std::find_if(begin, end, is_odd);
if(pos != end)
std::cout << *pos << std::endl;
В чём смысл
&arr[0]
? Насколько я понял, здесь просто разыменовывается указатель на первый элемент массива, а затем сразу же берется его адрес. Почему нельзя просто написать
arr
и получить всё тоже самое?