[RESOLVIDO]C: Como trocar o valor de duas variáveis usando ponteiro

Olá pessoal, estou com uma simples dúvida, estou estudando ponteiros e está dificil de entender como eles funcionam, primeiro tentei fazer um simples algoritmo para trocar o valor de duas variáveis, mas não está dando certo, da o seguinte erro:
[color=olive]teste.c: Na função ?main?:
teste.c:20:10: aviso: initialization makes pointer from integer without a cast [habilitado por padrão]
teste.c:20:16: aviso: initialization makes pointer from integer without a cast [habilitado por padrão]
[/color]
OBs: estou usando o gcc.

#include <stdio.h>
void Troca(int *p, int *q)
{
   int temp;
   temp = *p; 
   *p = *q; 
   *q = temp;
   printf("i = %d \nj = %d", *p, *q);
}

int main () {

  int *i=1, *j=3;
  Troca(i,j);
}

diegointersoft,

vamos lá. primeiramente, a principal característica de um apontador é que ele aponta para algum lugar (no caso, um endereço de memória). Você já aprendeu o operador &? O & serve para, entre outras coisas, referenciar um endereço de memória (a grosso modo).

Quando você quer dizer que um apontador para inteiro *i deve receber o valor 3, se você faz a instrução *i = 3, você não diz para onde o apontador tem que apontar. Isso no Windows 98 causava muito problema…

remodelando seu código, você deve fazer assim:

#include <stdio.h>  
void Troca(int *p, int *q)  
{  
   int temp;  
   temp = *p;   
   *p = *q;   
   *q = temp;  
   printf("i = %d \nj = %d", *p, *q);  
}  
  
int main () {  
  
  int *i, *j;
  int a = 1, b = 3;
  i = &a; // i vai apontar para o endereço de a
  j = &b; // j vai apontar para o endereço de b
  Troca(i,j);  
} 

O operador “&” é lido como “operador de endereçamenteo” e o operador “*” faz a “dereferência” .

O primeiro acessa endereços e o segundo o conteúdo deles:

[code]int y=5;
int *x = &y; // x recebe o endereço de memória de y; 0x08;

cout << x << " != " << *x << endl; // imprime 0x8 != 5 [/code]

obrigado a todos, acho que estou começando a entender isso.
http://pt.wikibooks.org/wiki/Programar_em_C/Ponteiros