PONTEIROS Um ponteiro é uma variável que armazena o endereço de memória de uma outra variável. Se uma contem o endereço de uma outra variável, a primeira é conhecida como um ponteiro para a segunda. Para declarar um ponteiro tipo_base *nome_pont, x Onde tipo base é qualquer tipo de dados válido em C++. A variável cujo endereço inicial é armazenado em nome_pont Importância do tipo base O ponteiro armazena o endereço de memoria do primeiro byte de um dado. Para ambientes de 32 bits, a quantidade de bytes ocupada por cada tipo é: char - 1 byte bool - 1 byte int - 4 byte double - 8 byte ponteiro - 4 byte Ponteiros e funções Quando passamos um pontiro como parametro de uma função, o valor por ele desreferenciado sempre é passado por referencia, pois o acesso ao dado apontado pelo ponteiro é feito diretamente aonde está armazenado na memoria. Em C, a passagem por referencia só é feita atraves de ponteiros. Mudanças no endereço de memoria armazenado pelo ponteiro, só refletem no ponteiro original se o ponteiro for passado por referncia. Interface da função Por cópia: tipo_retorno nome_funcao(tipo_base *nome_pont) Por referencia: tipo_retorno nome_funcao(tipo_base *&nome_pont) #include void fpont1(int *a) { *a=(*a)*2; a=NULL; } void fpont2(int *&a) { *a=(*a)*2; a=NULL; } void main() { int num, *p; cout << "Digite um numero: "; cin >> num; p=# cout << "\nEndereco de num: " << p; fpont1(p); cout << "\n" << num << " " << p; fpont2(p); cout << "\n" << num << " " << p; cin.get(); }