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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2011, 15:35   #1
hatsub
 
Регистрация: 24.01.2011
Сообщений: 9
По умолчанию В каких случаях ставится символ & ?

Добрый день, уважаемые программисты.

Я новичок в c/c++ объясните пожалуйста в каком случае в функции scanf перед переменной ставится символ "&" ?
hatsub вне форума Ответить с цитированием
Старый 24.01.2011, 15:58   #2
Вадим Мошев

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

Конкретно с функцией scanf не знаком вообще, но одной из причин использования символа "&" (амперсанд) в заголовках функций является желание делать так, чтобы при вызове функции изменялись значения аргумента (перед которой стоит &) самой функции.

Например, в турбо-паскале есть процедура inc. Она каждый раз при вызове увеличивает значение первого аргумента на второй аргумент (если второй аргумент не задан, предполагается его равенство 1).

На C/C++ аналогичную функцию выполняет оператор ++ (например, i++). Можно реализовать эту операцию с помощью функции, которую напишем сами с примененм символа &

Код:
int inc(int &a) {return a++};
Если мы обратимся к этой функции, то после её применения аргумент будет инкрементирован (увеличен на 1).
Вадим Мошев вне форума Ответить с цитированием
Старый 24.01.2011, 16:03   #3
Hemul
Форумчанин
 
Регистрация: 03.10.2010
Сообщений: 321
По умолчанию

& -это оператор,который показывает в какой ячейке памяти лежит переменная
например
&a=25000;
a=5;
-это значит,что переменная а лежит в ячейке 25000 ,а сама переменная имеет значение а
или если так понятнее
Работник-Вася Пупкин Иванович
&Работник - г.Москва ул Петрова д 1

в scanf ставится ,чтобы показать в какую ячейку памяти положить значение с клавиатуры
Hemul вне форума Ответить с цитированием
Старый 24.01.2011, 16:12   #4
Вадим Мошев

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

грубо говоря & - получения адреса (взятие адреса).
Вадим Мошев вне форума Ответить с цитированием
Старый 24.01.2011, 16:12   #5
Вадим Мошев

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

грубо говоря & - получения адреса (взятие адреса).
Вадим Мошев вне форума Ответить с цитированием
Старый 24.01.2011, 16:52   #6
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

http://ru.wikipedia.org/wiki/%D0%A3%...D%D1%8B%D1%85)

Ещё в C++ есть понятие «ссылка».
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 24.01.2011, 18:45   #7
pacniwassano
Пользователь
 
Регистрация: 02.12.2010
Сообщений: 81
По умолчанию

Цитата:
Сообщение от Obey-Kun Посмотреть сообщение
http://ru.wikipedia.org/wiki/%D0%A3%...D%D1%8B%D1%85)

Ещё в C++ есть понятие «ссылка».
причем тут ссылка? 1 пост внимательно прочтите. scanf использует адрес переменной
pacniwassano вне форума Ответить с цитированием
Старый 24.01.2011, 18:51   #8
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
причем тут ссылка? 1 пост внимательно прочтите. scanf использует адрес переменной
Мсье, ссылка на переменную это и есть адрес переменной.
_-Re@l-_ вне форума Ответить с цитированием
Старый 24.01.2011, 20:26   #9
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

_-Re@l-_, ссылка на переменную не есть адрес переменной. И вообще, в C++ нет понятия «переменная».

pacniwassano, я знаю. Это я написал для просвещения автора, тем более там тоже есть символ «&», вдруг он потом напутает что-нибудь в другом месте.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 24.01.2011, 20:58   #10
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Ссылка это как псевдоним переменной. Грубо говоря, когда мы применяем операцию & к переменной мы получаем её адрес в памяти, как писалось выше.

Последний раз редактировалось profi; 25.01.2011 в 00:21.
profi вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Символ "&" в реестре W0LF Общие вопросы Delphi 4 08.03.2010 15:54
Не ставится Windows ariya Компьютерное железо 5 18.01.2010 10:47
SynEdit не ставится corri Общие вопросы C/C++ 0 14.10.2009 10:00
TForm & TImage & PNG & Прозрачность delphi_beginner Общие вопросы Delphi 7 19.09.2009 08:46
Вкаких случаях может быть полезной процедура SetLength Ainur Помощь студентам 2 22.05.2009 12:01