C ++ passando o ponteiro para a função (Howto) + manipulação de ponteiro C ++

Estou um pouco confuso sobre como funciona o uso de ponteiros.

Digamos que eu tenho a seguinte função e ponteiro, e ...

EDITAR:

... Eu quero usar um ponteiro para algum objeto como argumento na função.

ou seja:

void Fun(int Pointer){
    int Fun_Ptr = ---Passed Pointer---; 
    //So that Fun_Ptr points to whatever ---Passed Pointer points to

Entre as notações * Pointer e & Pointer, estou muito confuso. Eu sei que * Ponteiro significa dar o que ele aponta.

Coloco void (int * pointer) na declaração. E quando eu uso a função?

Sua assistência é apreciada.

EDIT 2:

Ok, agora entendo que o uso da variável * em uma declaração significa que um ponteiro será passado. No entanto, e quando eu uso a função?

isto é

int main(){
    int foo;
    int *bar;
    bar = foo;
    Fun(bar);
}

EDIT 3: Ok, então me corrija se eu estiver errado:

De acordo com as convenções do código acima:

bar = & foo significa: faça com que o ponto de barra foo na memória

* bar = foo significa Alterar o valor que a barra aponta para igual a foo igual a

Se eu tiver um segundo ponteiro (int * oof), então:

bar = oof significa: barra aponta para o ponteiro oof

bar = * oof significa: bar aponta para o valor que oof aponta, mas não para o próprio ponteiro doof

* bar = * oof significa: altere o valor que a barra aponta para o valor que oof aponta para

& bar = & oof significa: altere o endereço de memória que a barra aponta para ser o mesmo que o endereço de memória que aof aponta para

Eu tenho esse direito?

EDIÇÃO 4: Muito obrigado por toda a sua ajuda (gostaria de poder aceitar mais de uma resposta, mas tenho que seguir a primeira. Não tenho certeza de como um wiki da comunidade funciona exatamente, mas deixarei assim para edição (fique à vontade para transformá-lo em um guia de referência, se quiser).

questionAnswers(7)

yourAnswerToTheQuestion