ARREGLOS Y APUNTADORES

Anuncio
5. LOS ARREGLOS
Un arreglo es un grupo de posiciones en memoria relacionadas entre sí,
por el hecho de que todas tienen el mismo nombre y son del mismo tipo.
Para referirse a una posición en particular o elemento dentro del arreglo,
especificamos el nombre del arreglo y el número de posición del
elemento particular dentro del mismo.1
Definición:
<tipo> <variable> [ N ]
Declara un arreglo de nombre <variable> con N elementos de tipo
<tipo>, (N es una constante).
Ejemplo: int a[10];
Referencia o direccionamiento:
Se hace referencia al (x + 1) elemento del arreglo definido anteriormente
mediante la expresión:
a [x]
donde x puede ser:
1. una variable entera;
2. el resultado de una expresión aritmética.
Notas sobre los arreglos
1. el valor de x debe de estar entre 0 y N
A continuación algunos ejemplos:
#include <stdio.h>
int main()
{
int i
int t[10];
for (i=0; i<10; i++) {
printf("De el valor del elemento %d del arreglo:",i);
scanf("%d",&t[i]);
}
for (i=0; i<10; i++) {
printf("Valor de t[%d]: %d \n",i,t[i]);
}
}
Segundo ejemplo arreglos
/* Ordenamiento de un arreglo de enteros */
#include <stdio.h>
1
H.M Deitel / P.J Deitel Como programar en C/C++ Editorial Prentice Hall Pag 204
int main()
{
int ti[10];
int i,j,tempo;
/* Capturando los valores del arreglo */
for (i=0; i <10; i=i+1)
{
printf(''De valor de t[%d]: '', i+1);
scanf(''%d'',&ti[i]);
}
/* Ordenando el arreglo */
for (i=0; i <10; i=i+1)
for (j=0; j <10; j=j+1)
if ( ti[i] < ti[j] )
{
tempo = ti[i];
ti[i]=t[j];
ti[j]=tempo;
}
/* Desplegando el contenido del archivo */
for(i=0; i <10; i=i+1)
printf(''%3d'', ti[i]);
printf(''\n'');
2
}
6. LOS APUNTADORES
Los apuntadores son variables que contienen direcciones de memoria
como sus valores. Por lo regular una variable contiene directamente un
valor específico. Un apuntador, por otra parte, contiene la dirección de
una variable que contiene un valor específico. En este sentido, un
nombre de variable se refiere directamente a un valor y un apuntador se
refiere indirectamente a un valor. El referirse a un valor a través de un
apuntador se conoce como indirección.3
Declaración de apuntadores
Los apuntadores como cualquier otra variable han de ser declarados
antes de que puedan ser utilizados.
El tipo de un apuntador está dado implícitamente por el tipo de la
variable a la que apunta.
2
3
Ejemplos tomados de http://homepage.cem.itesm.mx/rogomez/Tutorial-LengC/arreglos.html
H.M Deitel / P.J Deitel Como programar en C/C++ Editorial Prentice Hall Pag 260
Los apuntadores pueden ser declarados para apuntar a objetos de
cualquier clase.
La sintaxis general de declaración es:
<tipo> * <variable>
Ejemplos de declaraciones:
int *contPtr, cont;
float *res;
unsugned int *nosigno;
char *mensaje;
La variable contPtr es del tipo apuntador a entero, (int *) y se lee
``contPtr es un apuntador a int'' o ``contPtr apunta a una variable
entera''.
Los operadores de los apuntadores
1. Operador de dirección &
Regresa la dirección de su operando
ejemplo:
#include <stdio.h>
int main()
{
int y;
int *yPtr;
y = 5;
yPtr = &y;
printf("Valor de y: %d \n",y);
printf("Valor de yPtr: %d
\n",yPtr);
}
2. Operador de indirección o de desreferencia
Regresa el valor del objeto hacia el cual su operando apunta, es decir un
apuntador
Ejemplo:
#include <stdio.h>
main( )
{
int x,y;
int *py;
y = 5;
*py = y;
x = *py + 5;
printf(''Valor de x: %d y de y: %d \n'',*py,x);
}
Apuntadores y argumentos funciones
Pasando parámetros por valor
void permuta(x, y)
int x,y;
{
int temp;
temp =x;
x = y;
y = x;
}
Pasando parámetros por referencia
void permuta(px, py)
int *px,*py;
{
int temp;
temp = *px;
*px = *py;
*py = *px;
4
}
4
Ejemplos tomados de: http://homepage.cem.itesm.mx/rogomez/TutorialLengC/apuntadores.html
Descargar