Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Указатели и многомерные массивы





 

 

Начинающие изучать язык "с" иногда становятся в тупик

перед вопросом о различии между двумерным массивом и масси-

вом указателей, таким как NAME в приведенном выше примере.

Если имеются описания

 

INT A[10][10];

INT *B[10];

 

то A и B можно использовать сходным образом в том смысле,

что как A[5][5], так и B[5][5] являются законными ссылками

на отдельное число типа INT. Но A - настоящий массив: под

него отводится 100 ячеек памяти и для нахождения любого ука-

занного элемента проводятся обычные вычисления с прямоуголь-

ными индексами. Для B, однако, описание выделяет только 10

указателей; каждый указатель должен быть установлен так,

чтобы он указывал на массив целых. если предположить, что

каждый из них указывает на массив из 10 элементов, то тогда

где-то будет отведено 100 ячеек памяти плюс еще десять ячеек

для указателей. Таким образом, массив указателей использует

несколько больший объем памяти и может требовать наличие яв-

ного шага инициализации. Но при этом возникают два преиму-

щества: доступ к элементу осуществляется косвенно через ука-

затель, а не посредством умножения и сложения, и строки мас-

сива могут иметь различные длины. Это означает, что каждый

элемент B не должен обязательно указывать на вектор из 10

элементов; некоторые могут указывать на вектор из двух эле-

ментов, другие - из двадцати, а третьи могут вообще ни на

что не указывать.

Хотя мы вели это обсуждение в терминах целых, несомнен-

но, чаще всего массивы указателей используются так, как мы

продемонстрировали на функции MONTH_NAME, - для хранения

символьных строк различной длины.

 

Упражнение 5-6

--------------

Перепишите функции DAY_OF_YEAR и MONTH_DAY, используя

вместо индексации указатели.

 

 







Date: 2015-09-17; view: 332; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию