C++. Массив из структурных элементов. Альтернативные способы обращения к полям структур

Часто для решения определенных задач приходится создавать массивы, элементами которого являются структуры. Дело несложное. Ниже приведены два способа обращения к полям таких элементов-структур. Авось кому сгодится. Ниже приведен листинг (скачать)

 

#include <iostream>
using namespace std;
void main(void) { // Описываем структуру test для хранения четных (even) и нечетных (odd) чисел struct test { int even; int odd; };
// Указатель для создания динамического массива четных и нечетных чисел test *p; int n; char temp[16];
cout << "n = "; cin >> n;
// Выделяем память под массив чисел p = new test[n]; // Приведенные способы справедливы и для статических массивов // test p[100];
// Заполняем соответствующими значениями элементы массива p основным // и альтернативным способом for(int i = 0; i < n; i++) { // Основной способ p[i].even = 2*i; // Альтернативный способ (p+i)->odd = 2*i + 1; }
// Выводим содержимое массива p основным и альтернативным способом for(int i = 0; i < n; i++) { cout << "p[" << i << "].even" << "=" << p[i].even << "\t"; cout << "(p+" << i << ")->odd" << "=" << (p+i)->odd << endl; }
// Освобождаем память delete(p);
// One moment please... cin >> temp;
}







Сие справедливо как для динамических, так и для статических массивов