El estudio de las cadenas
Enviado por anymz931712 • 1 de Abril de 2014 • Informe • 359 Palabras (2 Páginas) • 225 Visitas
#include <stdio.h>
int mi_arreglo[] = {1,23,17,4,
-
5,100};
int *ptr;
int main(void)
{
int i;
ptr = &mi_arreglo[0]; /* apuntamos nuestro puntero
al primer elemento del arreglo*/
printf("
\
n
\
n");
for (i = 0; i < 6; i++)
{
printf("mi_arreglo[%d] = %d ",
i,
mi_arreglo[i]); /*<
--
A */
printf("ptr + %d = %d
\
El estudio de las cadenas es útil para profundizar en la relación entre apuntadores y arreglos. Facilita,
además la demost
ración de cómo algunas de las funciones estándar de cadenas de C pueden ser
implementadas. Finalmente ilustraremos cómo y cuando los apuntadores pueden y deben ser pasados a una
función.
En C, las cadenas son arreglos de caracteres. Esto no es necesariame
nte cierto para otros lenguajes. En Basic,
Pascal, Fortran y en otros lenguajes, una cadena tiene definido su propio tipo de datos. Pero en C, esto no es
así. En C una cadena es un arreglo de caracteres
terminado con un carácter
binario
de cero (escrito c
omo
\
0
).
Para comenzar nuestra
discusión
escribiremos algo de código, el cual si bien es preferido para propósitos
meramente ilustrativos, probablemente no
lo
escribirás en un programa real. Consideremos por ejemplo:
char m
i_cadena
[40];
mi_cadena
[0] =
'T';
mi_cadena
[1] = 'e';
mi_cadena
[2] = 'd':
mi_cadena
[3] = '
\
0';
Si bien uno nunca construiría cadenas de este modo, el resultado final es
una cadena que
es en realidad un
arreglo de caracteres
terminad
o con un
caracter
nul
. Por definición, en C, u
na cadena es un arreglo de
caracteres terminado con el carácter
nul
. Hay que tener cuidado con que
nul
no es lo mismo que
NULL
.
El “nul”
se
refiere
a un cero definido por la
secuencia
de escape ‘
\
0’. Esto es, que ocupa un byte de memoria. El
“NULL”, por ot
ra parte, es el
nombre de la macro usada para inicializar apuntadores nulos
. NULL es
tá
definido
en un
archivo de cabecera del compilador de C, mientras que nul
puede no estar
definido del todo.
Ya que al estar escribiendo código como el de arriba gastaría
mos mucho tiempo, C permite
...