Declaraciones • Es necesario poder declarar Tema 3 – Constantes • Nombre • Valor – Variables Declaraciones • Nombre • Tipo • Valor inicial – Funciones • • • • Nombre Parámetros Salida Cuerpo iwi-131 - Tema 3 Identificadores • Un identificador es el nombre que identifica una constantes, variable o función. • La elección del nombre debe cumplir ciertas reglas. – – – – – – Longitud ilimitada Debe partir con una letra o subrayado No se aceptan .,; -+*/?¿!¡=&%$#@|(){}[]…. etc Deben ser únicos en su ámbito Diferencian minúsculas de mayúsculas No puede coincidir con una palabra clave o función de biblioteca. Variables • Posición de memoria donde se almacena un dato. • Se define – Un nombre: para poder recuperar su valor – Un tipo: restringe los valores que puede almacenar iwi-131 - Tema 3 iwi-131 - Tema 3 Variables Variables locales • Declaración de variables tipo nombre1, nombre 2, … • Ej: int a; int b,c,d ; • Lugares de declaración – Dentro de una función (variables locales) – Como un parámetro (parámetros formales) – Fuera de las funciones (variables globales) iwi-131 - Tema 3 • Se definen dentro de una función. • Deben tener un nombre único dentro de la función. • Solo pueden ser utilizadas dentro de la función. • Esto es ampliable a cualquier bloque de código. • Se definen todas juntas al comienzo del bloque. • Se puede especificar un valor inicial. iwi-131 - Tema 3 1 Variables locales Variables locales void main(){ int x=10 ,y=20 ; Fin de la declaración printf("x:%d , y:%d \n",x,y); } void main(){ int x=10 ; int y=20 ; printf("x:%d , y:%d \n",x,y); } int x=10; Tipo Nombre Inicialización Error iwi-131 - Tema 3 void main(){ int x=10 ; printf("x:%d , y:%d \n",x,y); int y=20 ; } iwi-131 - Tema 3 Variables locales void f(){ printf("x:%d , y:%d\n",x,y ); } void main(){ int x=10,y=20; Error f(); } Variables locales void main(){ int x=10,y=20; { int x=100 ; int y=200 ; printf("x:%d , y:%d\n",x,y ); } printf("x:%d , y:%d\n",x,y ); } x:100 , y:200 x:10 , y:20 iwi-131 - Tema 3 iwi-131 - Tema 3 Parámetros formales Parámetros formales • Son los datos de entrada de las funciones. • Se comportan exactamente igual que las funciones locales. • Puede ser una lista de parámetros. • Cada parámetro debe especificar su tipo. void f(int a,int b){ printf("a:%d , b:%d\n",a,b ); } void main(){ int x=10,y=20; a:10 , b:20 f(x,y); } iwi-131 - Tema 3 iwi-131 - Tema 3 2 Variables globales • Se declaran antes del cuerpo del programa • Se declaran en forma idéntica a las locales. • Se pueden acceder desde cualquier parte de código. • Si una función la modifica, todo el resto tiene acceso al nuevo valor. Variables globales int z=100; void f(int a,int b){ printf("a:%d , b:%d\n",a,b); printf("z:%d\n",z); } void main(){ int x=10,y=20; printf("z:%d\n",z); z=1000; f(x,y); } z:100 a:10 , b:20 z:1000 iwi-131 - Tema 3 iwi-131 - Tema 3 Constantes Constantes sin nombre • Constantes sin nombre – Números – Letras – Palabras • Números: – Notación entera: (0..9)+ – Notación octal: 0(0..9)+ – Notación hexadecimal: 0x(0..9)+ • Constantes con nombre – Identificadores • Ej: – 102 – 0102 – 0x102 iwi-131 - Tema 3 iwi-131 - Tema 3 Constantes sin nombre Constantes sin nombre • Caracteres – (a..zA..Z) – Se declaran entre comillas simples • Caracteres especiales – Tiene un backslash al comienzo – Se ven dos caracteres pero es solo uno • Palabras – Son cadenas de caracteres – Se declaran entre comillas dobles – Tratamiento complejo • Ej: • Ej: – ‘a’ – ‘ \n’ – ‘ \t’ – “hola” – “adios\n” iwi-131 - Tema 3 iwi-131 - Tema 3 3 Constantes sin nombre void main(){ int x=20,y= 020 ,z=0x20; char c1='a' ,c2='\t',c3='b' ; char* s="hola"; printf("x:%d , y:%d , z:%d\n",x,y,z); printf("%c%c%c \n",c1,c2,c3); printf("%s\n",s); } x:20 , y:16 , z:32 a b hola Constantes con nombre • Deben definir un nombre y un valor • El nombre sigue las reglas de un identificador • Su valor no puede cambiar durante el programa • Dos maneras – const (modificador de acceso) – #define (instrucción del preprocesador) iwi-131 - Tema 3 iwi-131 - Tema 3 Constantes con nombre Comentarios const int z=100; #define w 200 void f(const int a,int b){ printf("a:%d , b:%d\n",a,b ); printf("z:%d , w:%d\n",z,w ); } void main(){ int x=10,y=20; printf("z:%d , w:%d\n",z,w ); z=1000; w=2000; f(x,y); } z:100 , w:200 a:10 , b:20 - Tema 3 z:100 ,iwi-131 w:200 • Texto que se agrega al código fuente por claridad. • Sirven para explicar – el funcionamiento de un programa o función. – La utilidad de una palabra. – La lógica de un algoritmo. – Obviar código erróneo o de prueba • Fundamentales como “buena práctica” de programación. iwi-131 - Tema 3 Comentarios • Dos versiones – De una sola línea – De varias líneas Comentarios /* nombre funcion: f Parametros: ninguno Objetivo: obtener el resultado del calculo Autor: JPM */ void f(){ … } void main (){ //variables principales int x, y; //int z=1000; //Obtener resultado de calculo f(); } iwi-131 - Tema 3 iwi-131 - Tema 3 4 Comentarios • Los comentarios se eliminan del código fuente antes de compilar • Es otra tarea del preprocesador Fin Tema 3 Declaraciones iwi-131 - Tema 3 5