Categoria:
Fundamentos da Linguagem
Sub-Categoria:
Estruturas de Controle [Veja dicas relacionadas]
Como usar ponteiros para controlar um laço while
É possível usar ponteiros para controlar a execução de um laço while em C++. Comece analisando o seguinte trecho de código:
// uma matriz de caracteres
char nome[] = "Arquivo";
// aponta para a primeira letra
char *letra = nome;
if(*letra)
cout << "True";
else
cout << "False";
Aqui o valor "True" será exibido, visto que o ponteiro *letra está apontando para um local da matriz de caracteres nome[] que é diferente de NULL. Veja agora:
// uma matriz de caracteres
char nome[] = "Arquivo";
// aponta para a primeira letra
char *letra = nome; // posição 0
// vamos atingir o final da matriz
// de caracteres
letra++; // posição 1
letra++; // posição 2
letra++; // posição 3
letra++; // posição 4
letra++; // posição 5
letra++; // posição 6
letra++; // NULL
if(*letra)
cout << "True";
else
cout << "False";
Como sabemos que a matriz de caracteres nome[] contém sete caracteres (de 0 a 6), incrementamos o ponteiro *letra até que este aponte para o caractere que marca o fim da matriz. Assim, o valor "False" é exibido.
Veja agora um laço while que tira proveito do que vimos aqui para exibir as letras da palavra "Arquivo" separadamente usando um ponteiro:
#include <string>
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
// uma matriz de caracteres
char nome[] = "Arquivo";
// aponta para a primeira letra
char *letra = nome;
// vamos usar o laço while para
// imprimir as letras separadamente
while(*letra){
cout << *letra << " ";
letra++;
}
cout << "\n\n";
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
|