Программирование
Добавить в закладки К обложке
- 1. Системы программирования - Страница 1
- 2. Классификация языков программирования высокого уровня - Страница 2
- 3. Переменные Visual Basic - Страница 3
- 4. Типы переменных - Страница 4
- 5. Целочисленные, переменного типа и переменные данных - Страница 5
- 6. Объявление переменных: оператор Dim для различных типов данных - Страница 6
- 7. Изменение значений по умолчанию для типов, область видимости - Страница 7
- 8. Используемые символы языка СИ - Страница 8
- 9. Константы языка СИ - Страница 9
- 10. Примеры использования констант языка СИ - Страница 10
- 11. Идентификатор. Ключевые слова - Страница 11
- 12. Комментарии. Исходные файлы - Страница 12
- 13. Область видимости - Страница 13
- 14. Объявление переменной на внутреннем уровне с классом памяти static - Страница 14
- 15. Объявление переменной, которая служит именем внешнего массива - Страница 15
- 16. Методы доступа к элементам массивов - Страница 16
- 17. Директивы препроцессора - Страница 17
- 18. Применение директив - Страница 18
- 19. Рекурсия - Страница 19
- 20. Знакомство с языком СИ++ - Страница 20
- 21. Комментарии в СИ++ - Страница 21
- 22. Соотношение между основными типами данных в СИ++ - Страница 22
- 23. Операции языка СИ++ - Страница 23
- 24. Оператор выражение. Пустой оператор - Страница 24
- 25. Оператор switch, break. Копирование строки - Страница 25
- 26. Описание функций - Страница 26
- 27. Исходные файлы С++ - Страница 27
- 28. Описание - Страница 28
- 29. Описание и скрытие имен - Страница 29
- 30. Имена переменных - Страница 30
- 31. Разыменование - Страница 31
- 32. Ссылка - Страница 32
- 33. Выражения и операторы - Страница 33
- 34. Функции и файлы - Страница 34
- 35. Классы - Страница 35
- 36. Перегрузка операций - Страница 36
- 37. Производные классы - Страница 37
- 38. Потоки - Страница 38
- 39. Инспектор объектов для языка Дельфи - Страница 39
- 40. Окно редактора кода Дельфи - Страница 40
- 41. Сообщения Дельфи - Страница 41
- 42. Оптимизация по быстродействию в Ассемблер - Страница 42
- 43. Оптимизация по размеру в Ассемблер - Страница 43
- 44. Достоинства и недостатки оптимизации - Страница 44
- 45. Отказ от универсальности - Страница 45
- 46. Оптимизация переходов и вызовов подпрограмм - Страница 46
- 47. Оптимизация циклов - Страница 47
- 48. Управляющие таблицы - Страница 48
- 49. Оптимизация для конкретных моделей процессоров - Страница 49
- 50. Органы управления (controls) Active X - Страница 50
- 51. Синтаксис Active X - Страница 51
- 52. Практикум Active X - Страница 52
- 53. Сценарии и документы - Страница 53
- 54. Netscape Navigator - Страница 54
- 55. Понятие системы VВА - Страница 55
- 56. Язык программирования VВА - Страница 56
16. Методы доступа к элементам массивов
Доступ к элементам массива может производиться двумя различными способами.
Первый способ связан с применением обычных индексных выражений в квадратных скобках, например: array[18] = 3 или array[i + 3] = 9. При данном способе доступа записываются два выражения. Второе выражение должно быть заключено в квадратные скобки. Одно из данных выражений должно являться указателем, а второе – выражением целого типа. Последовательность записи данных выражений может быть произвольной, однако в квадратных скобках следует записывать выражение, следующее вторым. Поэтому записи array[16] и 16[array] будут являться одинаковыми и обозначающими элемент массива с номером шестнадцать. Указатель, который используется в индексном выражении, не всегда является константой, которая указывает на какой-либо массив, это может быть и переменная. Например, после выполнения присваивания ptr = array доступ к шестнадцатому элементу массива можно получить, применяя указатель ptr в форме ptr[16] или 16[ptr].
Второй способ доступа к элементам массива связан с применением адресных выражений и операции раза-дресации в виде *(array+16) = 3 или *(array+i+2) = 7. При данном способе доступа адресное выражение соответствует адресу шестнадцатого элемента массива, тоже может быть записано различными способами: *(array+16) или *(16+array).
При работе на компьютере первый способ приводится ко второму, т. е. индексное выражение становится адресным. Для ранее рассмотренных примеров array[16] и 16[array] преобразуются в *(ar-ray+16).
Для доступа к начальному элементу массива, т. е. к элементу с нулевым индексом, можно применять просто значение указателя array или ptr. Любое из присваиваний
*array = 2;
array[0] = 2; *(array+0) = 2; *ptr = 2;
ptr[0] = 2;
*(ptr+0) = 2;
присваивает начальному элементу массива значение 2, но быстрее всего выполнятся присваивания *array = 2 и *ptr = 2, так как в них не требуется выполнять операции сложения.