Пример указателя на массив в С++
Есть особенность в С++ связанная с тем, что имя массива (без индексов) является указателем на первый элемент массива. Например, если массив создается командой int a[10], то имя массива a является указателем (адресом) на первый элемент массива a[0]. В принципе, адрес этого элемента можно получить и стандартными методами, как для обычной переменной с помощью команды & n[0]. Однако профессионалы предпочитают использовать более простой синтаксис, основанный на имени массива. В самой по себе ссылке на первый элемент проку было бы мало, если б не то принципиальное обстоятельство, что элементы массива размещаются в смежных ячейках. Поэтому, зная адрес первого элемента и количество элементов в массиве, получаем доступ ко всему массиву. Хотя доступ может быть получен и через имя массива и индекс элемента, арифметические операции с адресами выполняются быстрее, по сравнению с индексированием массива. Кроме того, указатель, который ссылается на массив, можно индексировать точно так же, как если бы это было имя массива. Пример использования указателей на массивы приведен ниже.
Использование в приведенном выше коде указателя р является лишним, поскольку, имя массива само является указателем на первый элемент массива. Допустимым является следующий программный код:
#includeusing namespace std; int main(){ int n[10],*p; p=n; for(int i=0; i < 10;i++){ p[i]=10-i; cout << *(p+i) << " ";} cout << "\n"; return 0; }
#includeusing namespace std; int main(){ int n[10]; for(int i=0; i < 10;i++){ *(n+i)=10-i; cout << n[i] << "\n";} return 0; }