#include <stdlib.h>
#include <stdio.h>
int main()
{
int tabla[10],i,x,*pt,*ptr;
pt = &tabla[0];
x = *pt;
for (i=0; i <10; i++)
*(pt+i) = rand() % 100;
ptr = tabla;
for (i=0; i <10; i++)
printf(''%d
\n'',*(ptr+i),tabla[i]);
}
Arreglos de apuntadores
#include
<stdlib.h>
#include <stdio.h>
int main()
{
int x;
char * mes[] = {
''mes ilegal'',
''enero'',
''febrero'',
''marzo'',
''abril'',
''mayo'',
''junio'',
''julio'',
''agosto'',
''septiembre'',
''octubre'',
''noviembre'',
''diciembre'',
};
x = rand() % 12;
printf(''El mes %d corresponde
a %s \n'',x,mes[x]);
}
Detalles inicialización arreglos caracteres
A diferencia de un apuntador, un arreglo inicializado por un string puede ser modificado. Los caracteres individuales pueden ser cambiados después.
#include <stdio.h>
int main()
{
char *esp[10] = {
''uno'',
''dos'',
''tres''
};
char frances[5][10] = {
''un'',
''deux'',
''trois''
};
printf("Elemen: 123456789\n");
for (i=0; i<3; i++)
printf("Esp[%d]:
%s\n",i,esp[i]);
for (i=0; i<3; i++)
printf("Fra[%d]:
%s\n",i,esp[i]);
printf("\nEsp: Elemento 3 de la
entrada 2 %c \n",esp[2][3]);
printf("Fra: Elemento 4 de la
entrada 3 %c \n",frances[3][4]);
printf("Esp: Elemento 7 de la
entrada 2 %c \n",esp[2][7]);
frances[3][4]='A';
printf("Fra: Elemento 4 de la
entrada 3 %c \n",frances[3][4]);
esp[2][3]='A'; /* Segmentation fault (core dumped) */
printf("Elemento 3 entrada 2
esp: %c \n",esp[2][3]);
}
Apuntadores y arreglos multidimensionales
2. se debe de crear el espacio de los arreglos antes de asignarlos
2. el tamaño de los arreglos apuntados por cada una de las
diez
localidades pueden ser diferentes
Diferentes formas de declarar a[i][j]
Cuando se ve la referencia a un arreglo de dos dimensiones, a[i][j] , no se puede deducir inmendiatamente como fue declarado a :
|
|
|