скрытое меню

передача параметров

Привыкаем:

*xxx - значение, xxx - адрес
&xxx - адрес , xxx - значение

О чем я думаю видя примерно такое объявление функции:

void ffff(int i1,int *i2, int &i3)
{
    *i2=1; // меняем значение , которое вне(за) функцией , на которое указывает указатель i2
    i3=2;  // меняем значение вне(за) функцией , на которое указывает ссылка i3
    //i2=1234; // так нельзя указателю устанавливать значение (адрес)
    i2=&i1; // так указателю можно поменять значение (т.е. адрес куда он указывает) на другое значение (адрес)
    //&i3=&i1; // а ссылке нельзя менять ее значение (т.е. адрес куда она указывает)
}

i1 - параметр передается как значение для использования только внутри функции.
*i2 - обеспечивает связь с внешним миром функции, т.е. указывает на переменную вне функции. Значение этой переменной можно изменить из кода функции.
&int i3 - тоже , что и i2 но есть нюанс: нельзя менять само значение (адрес куда указывает ссылка).

Выводы:
Зачем нам нужна функция? - чтобы что-то вычислить и вернуть обратно результаты через входные параметры.
Смело пользуемся для этих целей параметрами при вызове функции : через них возвращаем результаты.

Яндекс.Метрика