Ponteiros
Às vezes nós queremos saber onde uma variável reside na memória. Um ponteiro contem o endereço de uma variável que tenha um valor específico. Ao declarar um ponteiro, um asterisco é colocado imediatamente antes do nome do ponteiro.
O endereço da posição de memória onde a variável é armazenada pode ser encontrado colocando um ampersand na frente do nome variável.
int num; /* Normal integer variable */
int *numPtr; /* Pointer to an integer variable */
O seguinte exemplo imprime o valor variável e o endereço na memória dessa variável.
printf("The value %d is stored at address %X\n",
num, &num);
Para atribuir o endereço da variável numérica ao numPtr do ponteiro, você atribui o endereço do variável, numérico, como no exemplo dado em seguida:
numPtr = #
Para encontrar para fora o que é armazenado no endereço apontado pelo numPtr, a variável necessita dereferenced. Dereferencing é conseguido com o asterisco que o ponteiro estêve declarado com.
printf("The value %d is stored at address %X\n",
*numPtr, numPtr);
Todas as variáveis em um programa residem na memória. As indicações dadas abaixo do pedido que a reserva do compilador 4 bytes da memória em um computador de 32 bocados para a variável floating-point x, pôs então o valor 6.5 nela.
float x;
x = 6.5;
Enquanto a posição do endereço na memória da variável está obtida colocando o operador & antes de seu &x do nome conseqüentemente é o endereço do X.C permite que nós vão um estágio mais mais e definam uma variável, chamada um ponteiro que contenha o endereço de outras variáveis. Rather nós podemos dizer que o ponteiro aponta à outra variável. Por exemplo:
float x;
float* px;
x = 6.5;
px = &x;
define o px para ser um ponteiro aos objetos do tipo flutuador, e ajusta-o igual ao endereço do X. Assim, o *px consulta ao valor de x:
|