У вас вопросы?
У нас ответы:) SamZan.net

массивы и параметрыструктуры Массив не передается по значению а передается указатель на его первый элеме

Работа добавлена на сайт samzan.net: 2015-07-05

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 1.7.2025

12 Параметры-массивы и параметры-структуры

Массив не передается по значению, а передается указатель на его первый элемент. При этом компилятор автоматически преобразует переменную массива в ссылочный тип данных вне зависимости от описания параметра. При этом не обязательно указывать размеры массива, так как внутри программы не отслеживаются автоматически.

Но размер массива недоступен вызываемой функции. Это можно обойти несколькими способами. Строки оканчиваются нулем, поэтому их размер можно вычислить. Для других массивов можно передавать их размер с помощью дополнительных параметров, которые задают размер, или определяют тип, содержащий указатель и индикатор длины, и передавать его вместо просто массива. Например:

voidcompute1(int* vec_ptr, intvec_size);    // одинспособ

structTvector    // другой способ с помощью структуры

{  int* ptr;  // указатель на целочисленный массив

int size; // размермассива

};

void compute2(vec v);

Для многомерных массивов можно вместо них использовать векторы указателей, которые не требуют специального рассмотрения. Например:

char* day[] = { "mon", "tue", "wed", "thu", "fri", "sat", "sun" };

При использовании в качестве параметров функций переменных-структур возможно следующее:

1) использование для передачи данных по значению;

2) использовать для передачи данных по ссылке.

При передаче данных по ссылке внутри тела функции используется указатель на структуру. Доступ к данным полей структуры выполняется с помощью оператора «стрелка» (->). Который автоматически выполняет операцию разыменовывания. Формат:

имя_указателя_на_структуру->имя_поля

Пример использования параметра-структуры для функции чтения полей с клавиатуры и передачи их в программу.

intentry(structsman* man)     // Определение функции ввода данных структуры

{ cout<< "\nИмяклиента          : ";

cin>> man->name;

cout<< "\nОтчество клиента     : ";

cin>>man->name2;

cout<< "\nФамилияклиента      : ";

cin>> man->family;

cout<< "\nГодрожденияклиента : ";

cin>>man->year;

cout<< "\nНомерсчетаклиента  : ";

cin>>man->number;

return 0;      // Код успешного окончания процесса

} // ---------------------------------------

При передаче параметров-структур по значению рекомендуется указывать описание параметра struct в формате

structимя_типа_структурыпеременная_структур




1. Важнейшие унциалы
2. На смену прежнему противостоянию где участники были предопределены а условия жестко заданы пришло многом.html
3.  ~айсы жауап д~рыс Нефрон дегеніміз не ж~ректі~ камерасы-- несеп ~уы~ынын б~лігі -- б~йректі~
4. по теме наречие
5. Також під філософією розуміють форму людськогомислення теоретичну форму світогляду
6. Подбор оборудования для бетоносмесительных заводов
7. Норильский институт повышения квалификации МОУ Лицей 3 Научноисследовательский п
8. составная часть любой управленческой функции
9. Microsoft Office Перша версія Multi Tool Word була написана для Xenix [1][2][3] і перенесена під DOS у 1983 році
10. 01 Введение3 2