Deixar-nos examinar as seguintes indicações:
int var_x;
int* ptrX;
var_x = 6;
ptrX = &var_x;
*ptrX = 12;
printf("value of x : %d", var_x);
A primeira linha faz com que o compilador reserve um espaço na memória para um inteiro. A segunda linha diz o compilador para reservar o espaço para armazenar um ponteiro.
Um ponteiro é uma posição do armazenamento para um endereço. A terceira linha deve lembrá-lo as indicações do scanf. O endereço “&” o operador dizem o compilador para ir ao lugar que armazenou o var_x, e dão então o endereço da posição do armazenamento ao ptrX.
O asterisco * na frente de uma variável diz o compilador para dereference o ponteiro, e vão à memória. Então você pode fazer atribuições à variável armazenada nessa posição. Você pode reference uma variável e alcançar seus dados através de um ponteiro. Deixar-nos ver um exemplo dos ponteiros:
/* ilustração do uso do ponteiro */
#include <stdio.h>
int main()
{
int index, *pt1, *pt2;
index = 39; /* any numerical value */
pt1 = &index; /* the address of index */
pt2 = pt1;
printf("The value is %d %d %d\n", index, *pt1, *pt2);
*pt1 = 13; /* this changes the value of index */
printf("The value is %d %d %d\n", index, *pt1, *pt2);
return 0;
}
A saída do programa será indicada como segue:
The value is 39 39 39
The value is 13 13 13 |
|