Передача указателя в функцию C ++ (Howto) + манипуляция указателем в C ++
Я немного озадачен тем, как работает передача указателей.
Допустим, у меня есть следующая функция и указатель, и ...
РЕДАКТИРОВАТЬ:
... Я хочу использовать указатель на некоторый объект в качестве аргумента в функции.
т.е .:
void Fun(int Pointer){
int Fun_Ptr = ---Passed Pointer---;
//So that Fun_Ptr points to whatever ---Passed Pointer points to
Между нотациями * Pointer и & Pointer я очень запутался. Я знаю, что * указатель означает дать все, на что он указывает.
Я должен положить void (int * указатель) в объявлении. Как насчет того, когда я использую функцию?
Ваша помощь приветствуется.
РЕДАКТИРОВАТЬ 2:
Хорошо, теперь я понимаю, что использование * переменной в объявлении означает, что указатель будет передан. Однако как насчет того, когда я использую функцию?
то есть
int main(){
int foo;
int *bar;
bar = foo;
Fun(bar);
}
РЕДАКТИРОВАТЬ 3: Хорошо, поправьте меня, если я ошибаюсь:
В соответствии с соглашениями приведенного выше кода:
bar = & foo означает: сделать бар указателем на foo в памяти
* bar = foo означает изменить значение, на которое указывает bar, на любое равное foo
Если у меня есть второй указатель (int * oof), то:
bar = oof означает: бар указывает на указатель oof
bar = * oof означает: bar указывает на значение, на которое указывает oof, но не на сам указатель oof
* bar = * oof означает: изменить значение, на которое указывает bar, на значение, на которое указывает oof
& bar = & oof означает: изменить адрес памяти, на который указывает строка, таким же, как адрес памяти, на который указывает oof
Есть ли у меня это право?
РЕДАКТИРОВАТЬ 4: Большое спасибо за вашу помощь (я хотел бы принять более одного ответа, но я должен идти с первым. Я не уверен, как именно работает вики сообщества, но я оставлю это так для редактирование (не стесняйтесь превратить его в справочник, если хотите).