Лабораторная работа №4 (Теор_часть)

Посмотреть архив целиком

Лабораторная работа № 4

«Передача значений»

Теоретическая часть


С++ поддерживает 2 способа передачи переменных между функциями. Это передача по значению и передача по адресу или ссылке.

Передача по значению:

main( )

{

int i = 5;

pr_it (i);

return 0;

}

pr_it (int i);

{

cout << i;

return;

}


В принимающую функцию передается не сама переменная i, а ее фактическое значение равное 5. В результате переменная i не одна, а их фактически две. Первый из них является локальной по отношению к main( ), а вторая по отношению pr_it .

Обе переменные имеют одинаковые имена, но так как они локальны в своих функциях, то конфликта не возникает. В принимающую функцию посылается только значение i , поэтому не важно как назвать в этой функции переменную, принимающую это значение. Однако на практике при передаче и приеме переменных между функциями лучше и понятнее использовать одинаковые имена, несмотря на то, что это разные переменные так как они содержат одинаковые значения. В приведенном примере значение 5 передается из переменной i в функцию main в переменную i pr_it . Поскольку в этом случае происходит передача значений переменной i , то при изменении i в функции pr_it будет изменена только копия этой переменной, а не сама i функции main . Используя этот метод мы можем передавать копии переменных, принимающей функции, но она не может изменять значения этой переменной, вызывающей функции. Для передачи переменных по значению нужно указать их в списке аргументов, вызывающей функции в списке параметров принимающей функции.

Передача по адресу или по ссылке.

При передаче аргумента по адресу параметра функции присваивается адрес указанной переменной. При объявлении переменной С++ находит свободное место в памяти и закрепляет его за этой переменной. При передаче переменной по адресу принимающей функции происходит копирование её адреса, а не значения. Если принимающая функция изменяет переменную, которая была передана в неё по адресу, то при возврате в вызванную функцию все изменения сохраняются. В С++ по адресу передаются массивы.

Программа запрашивает вес пользователя:

# include

void moon (int Weight)

{

int S; // Объявление передаваемого параметра

S = Weight / 6

cout << “your Weight on the moon = “ << S << “\n”; // Вычисления.

return;

}

main( )

{

int Weight; // Локальная переменная функции main

cout << “how many pound do you Weight? \ “ ;

cin >> Weight;

moon (Weight); // Вызов функции moon и передача ей значения

return 0;

}



Описание программы:

Программа высчитывает вес пользователя на Луне при вводе веса на Земле.

Программа передаёт вес пользователя в функцию, которая вычисляет вес на луне. Принимающая функция moon использует переданные значения для соответствующих подсчетов. Как только функция получает это значение, она обрабатывает его как локальную переменную.


Задание:

напишите программу для передачи по значению.


Случайные файлы

Файл
7559-1.rtf
1.doc
96096.rtf
41297.rtf
34076.rtf




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