Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2012, 12:52   #1
dollemika
Пользователь
 
Регистрация: 29.04.2009
Сообщений: 29
По умолчанию Какова разница между "int** &a" и "int** a" в кач-ве параметра функции?

Скажите пожалуйста, зачем двумерный динамический массив передавать в функцию таким образом? Чем отличается запись int** a ??
dollemika вне форума Ответить с цитированием
Старый 15.01.2012, 13:34   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Оператор & - это взятие адреса переменной, перед которой этот оператор записан.
Если речь идёт о функциях, то, если перед её аргументом стоит оператор &, то после её вызова значение переданного аргумента будет изменено.
Например:
Код:
void swp(int &a, &b)
{
int t = a;
a = b;
b = t;
};
Если мы вызовем такую функцию (напишем в коде swp(a, b)), то после её вызова переменные a и b поменяются своими значениями, чего не произойдёт, если мы запишем такую функцию без операторов & в её заголовке.
Вадим Мошев вне форума Ответить с цитированием
Старый 15.01.2012, 13:43   #3
dollemika
Пользователь
 
Регистрация: 29.04.2009
Сообщений: 29
По умолчанию

Вадим Мошев, Да, это понятно=) но проблема именно в том, что я не могу понять, что происходит в данном случае "int** &a".. Разве, если передать в функцию массив a таким образом ("int** a"), он не будет меняться, если с ним работает функция? Вроде бы должен, тогда зачем там еще и & ? =(((

Последний раз редактировалось dollemika; 15.01.2012 в 13:51.
dollemika вне форума Ответить с цитированием
Старый 15.01.2012, 17:16   #4
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

dollemika

Какова разница между "int** &a" и "int** a" в кач-ве параметра функции?

разница в том, что в первом случае происходит передача аргумента по ссылке, а во втором - по значению.
Rififi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Синтаксическая ошибка " или " в чём разница?" vedro-compota PHP 7 07.08.2010 16:45
ошибка при обработке функции класса "missing type specifier - int assumed" askerpro Общие вопросы C/C++ 8 02.06.2010 23:09
Что происходит на странице с такие JS: <script src="cmp.php?complete&amp;" id="las..." ...>? TwiX JavaScript, Ajax 0 05.02.2010 17:38
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
C++, препроцессор, как из "int" сделать "char"? Максай Помощь студентам 3 05.09.2008 08:16