Адресный оператор C ++ использует?

Возможное дублирование:
Зачем нужны указатели?

Я знаю, что делает C ++ &. но для чего это можно использовать?


person Daniel says Reinstate Monica    schedule 19.02.2011    source источник
comment
Я знаю, что делает оператор +, но для чего его можно использовать?   -  person    schedule 19.02.2011
comment
В этом нет никакого смысла, чувак.   -  person Daniel says Reinstate Monica    schedule 19.02.2011
comment
& Дает мне адрес в памяти, где он хранится. НО ЧТО С ЭТОМ ДЕЛАТЬ ???   -  person Daniel says Reinstate Monica    schedule 19.02.2011
comment
Знак + дает мне сумму двух чисел. НО ЧТО С ЭТОМ ДЕЛАТЬ ???   -  person    schedule 19.02.2011
comment
вы спрашиваете, для чего нужны указатели?   -  person tenfour    schedule 19.02.2011
comment
Указатели сложно осмыслить, но ваш компьютер в любом случае работает под капотом, идея с объектной ориентацией заключается в том, чтобы обернуть некоторые из них, так что вам не нужно об этом думать. Понимание того, как они работают, означает, что вы станете лучшим программистом.   -  person Chris Pfohl    schedule 19.02.2011


Ответы (3)


  • & используется для передачи адреса аргументов (указателя) функции, когда он используется на вызывающем сайте.
  • & используется для передачи аргументов по ссылке в функцию, когда он используется в списке параметров функции.
  • & - побитовое AND. например (a & b)
  • & используется в логическом AND. В этом случае два & составляют логический AND. например (a && b).
person Nawaz    schedule 19.02.2011
comment
@Dan: Если он прояснил ваши сомнения, примите его как свой ответ, нажав на галочку! - person Nawaz; 24.02.2011

Например, чтобы передать указатель на ваш объект в некоторую функцию.

person Andrew    schedule 19.02.2011

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

Просмотрите boost библиотеки и найдите их. Один пример:

template<class Y> explicit shared_ptr(Y * p);

Чтобы передать указатель на Y, вам нужно будет использовать оператор &.

Кроме того, в вашем профиле написано, что вы увлекаетесь трехмерными играми. Почти каждая библиотека C ++ 3d, о которой я знаю, использует указатели на массивы чисел с плавающей запятой или целых чисел для управления всем. Вам нужен оператор & для передачи указателей на эти массивы.

person Chris Pfohl    schedule 19.02.2011
comment
Вполне вероятно, что вы не хотите передавать адрес, полученный с помощью &, в shared_ptr. - person UncleBens; 19.02.2011