29 Strings e Ponteiros

Vimos anteriormente que strings em C nada mais são que arrays de elementos do tipo char cujo último elemento é o caracter '$\backslash$0' (nulo). Até agora a declaração e inicialização de um string tem sido como abaixo:

         char nome[] = "Um string de caracteres";
         char str[20] = "Um outro string de caracteres";

No exemplo acima, cada conjunto de caracteres limitados por um par de aspas é denominado de uma constante string. Como toda expressão em C , uma constante string tem um valor e um tipo associado.

O compilador C automaticamente aloca espaço no programa para armazenar este string. Esta constante na verdade está definindo um array que está armazenado em um endereço de memória mas que não têm um nome de variável associado a ele. O valor produzido para esta constante string é um ponteiro para este array anônimo. E o tipo da constante é um ponteiro para char.

Assim, na maior parte dos casos de programas em C , é mais conveniente representar um string através de um ponteiro para char. O valor inicial deste ponteiro deve ser sempre o endereço do primeiro caracter do string ou uma constante string. O exemplo acima pode ser reescrito como abaixo, que deve ser a forma preferida para se declarar e inicializar strings em programas em linguagem C :

         char *nome = "Um string de caracteres";
         char *str = "Um outro string de caracteres";

Armando Luiz Nicolini Delgado
2013-10-21