Professional Documents
Culture Documents
Poo 3.0
Poo 3.0
Tema 2: Elementos Bsicos de la programacin en el lenguaje C (Variables) Dr. Rogelio Silverio Castro Dpto. de Ciencias de la Computacin Facultad de Matemtica Fsica y Computacin Universidad Central Marta Abreus de Las Villas
Variables
Variable es un nombre mediante el cual, en el programa se hace referencia a una zona de memoria en la que se almacena informacin. informacin. Declaracin de variables: variables: Tipo lista_de_variables; lista_de_variables; Ejemplos: Ejemplos: Int i,j,k; i,j,k; Short int si; si; Unsigned int i; Double bal, ben, per; per;
Locales. Se declaran dentro de las funciones Locales. Globales. Se declaran fuera de todas las Globales. funciones Parmetros. Se declaran en la lista de Parmetros. parmetros formales de las funciones
Modificadores de acceso
Los modificadores de acceso son palabras claves que le indican al sistema la forma que se accedern o modificarn las variables. Const indica que el contenido de la variable no puede ser modificado durante la ejecucin del programa. Volatile indica que el valor de la variable sera modificado por medios no especificados en el programa. Nota. Las variables que no tengan en su declaracin los modificadores de accesos son variables normales
Especificaciones de almacenamiento
Las especificaciones de almacenamiento son palabras claves que le indican al compilador como debe almacenar las variables. extern static register auto Sintaxis: Especificador_de_almacenamiento tipo n_de_variable
Archivo eee0 int y; extern int x; int func2() {y=23; return(y); } int func3() { x=10; return(x); }
La especificacin register establece que el acceso a a los objetos sea lo mas rpido posible. En esencia esta especificacin es una indicacin al compilador de que estas variables van a ser fuertemente utilizadas. La especificacin register solo se puede aplicar a variables locales y a parmetros formales de una funcin. En general este tipo de variables son ideales para el control de bucles
La especificacin del tipo de almacenamiento automtico esta implcita en la declaracin de cualquier variable y la misma significa que dichas variables existen mientras el bloque donde estn declaradas este activo
Arreglos
Un arreglo es una coleccin de variables del mismo tipo que se referencian por un nombre comn. A un comn. elemento especifico de un arreglo se accede mediante un ndice. ndice. Sintaxis: Sintaxis: tipo nombre_de _variable[tamao] _variable[tamao] Ejemplo double balance [100] 100]
Los arreglos no pueden pasarse como parmetros a las funciones. Sin embargo se puede pasar un funciones. puntero a un arreglo especificando el nombre del mismo sin ndice. ndice. Ejemplo.
void main() { int a[10]; func1(a); . . }
Arreglos
Operadores de punteros
Operador &. Devuelve la direccin de memoria de una variable. variable. Operador *. Devuelve el contenido de la variable cuya direccion esta en la variable tipo puntero. puntero. Ejemplo. Ejemplo. Int *px,x,y,z *pp; /* se declaran x,y,z enteras y px como apuntador a entero*/ *pp; x=2 x=2; px=&x; px=&x; y=x; y=x; z=*px; pp=px; z=*px; pp=px; Como resultado de las instrucciones anteriores se tiene que: que:
x contiene un 2; si la direccion de x es por ejemplo100 px contiene 200 ejemplo100 y contiene un 2 z tambien contiene un 2 pp apunta a donde apunta px
Aritmtica de punteros
Las dos operaciones que se pueden realizar con punteros son: son: Sumarles y restarles enteros (en particular el incremento y el decremento). decremento). Cuando se suma ( o se resta) un entero a un puntero el valor que se suma (o se resta ) es el producto de dicho entero por la longitud del tipo base. base. La resta de un puntero de otro. Esta operacin da como resultado el otro. nmero de objetos del tipo base que separan a ambos punteros Adems de estas operaciones los punteros se pueden comparar en una expresin relacional. Por ejemplo, dados los punteros p y q, la relacional. siguiente expresin es completamente vlida. vlida. If (p<q) cout << p apunta a menor memoria que q ;
Existen dos formas de parmetros a una funcin. funcin. Llamada por valor Llamada por referencia. referencia.
pasar
los
Las variables tipo puntero se inicializan automticamente cuando a las mismas de le asigna el resultado de alguna funcin de asignacin dinmica de memoria tal como la funcin malloc(n). malloc(n). La funcin malloc() de la biblioteca estndar de C se utiliza para asignar dinmicamente n bytes de memoria contiguos sin inicializar. Si la llamada tiene inicializar. xito se devuelve un puntero al primer Byte del bloque de memoria asignado, en caso contrario se devuelve el punteo nulo (0) Ejemplo: Ejemplo: float* ptr; ptr; ptr =(float*) malloc(10 * sizeof(float)); malloc(10 sizeof(float));