You are on page 1of 5

Formato

Declaraciones
Waldo E. Valenzuela P.

Declaración básica.
Tipo lista_de_nombres.

Ejemplos:
int i; char letra1, letra2, letra3; unsigned short direccion;

waldovalenzuela@udec.cl

Todas las declaraciones terminan con “;”
El “;” es el TERMINADOR de línea en C.

© 2011 Waldo Valenzuela

1

© 2011 Waldo Valenzuela

2

Nombres
Se pueden incluir mayúsculas, minúsculas, números, _
No pueden comenzar con un digito.

Inicialización de variables
Asignación de valor inicial.
int I = 15; char letra1 = ‘A’, letra2, letra3; unsigned short direccion = 0x3F65; unsigned numero = 034;

C distingue entre mayúsculas y minúsculas.
Abc ≠ ABc ≠ ABC ≠ abc

Longitud ilimitada.
Estándar permite ignorar caracteres > 31

© 2011 Waldo Valenzuela

3

© 2011 Waldo Valenzuela

4

Acceso directo a elementos. mascorto. letra3: caracter Valor inicial indeterminado direccion: short (2 bytes) Valor inicial: 0x3F65 numero: entero (4 bytes) Memoria © 2011 Waldo Valenzuela numero Valor inicial: 034 5 © 2011 Waldo Valenzuela 00 00 00 15 A ?? ?? 3F 65 00 00 00 034 Memoria6 (2n bytes) Largo de memoria de 8 bits Declaración de Vectores Vectores unidimensionales.//en dirección 23 Dir. © 2011 Waldo Valenzuela 7 © 2011 Waldo Valenzuela 8 . typedef Mecanismo que permite definir nuevos nombres para tipos de datos.Inicialización de variables Un byte Dir. 0 Dir.//en dirección 2 letra1: caracter (1 byte) Valor inicial: ‘A’ I letra1 letra2 letra3 direccion int b=20. Vector[5] = 10. El compilador no verifica limites. 2 15230 Variables en memoria I: entero (4 bytes) Valor inicial: 00000015 Un byte int a. Facilita los cambios de tipos de datos. Que pasa si se accesa vector[30]? Simplifica el código. 1 Dir. 23 6958 letra2. int vector[20]. Vector de 20 elementos (vector[0] a vector[19]) Numeración de vectores siempre comienza en 0. typedef ushort unsigned short. ushort corto.

} } 9 © 2011 Waldo Valenzuela Colores indican alcances de las variables a tiene alcance de archivo f. Alcance de archivo Identificadores declarados fuera de todo bloque son visibles en todo el archivo “Variables globales” Las dos primeras líneas del ejemplo Todos los nombres de funciones tienen alcance de archivo © 2011 Waldo Valenzuela 11 © 2011 Waldo Valenzuela 12 . Bloques pueden ser anidados.Alcance de una variable Sección de código donde una variable es valida. Variable definida al comienzo de un bloque es visible en todo el bloque. i. Alcance a nivel de archivo. Es posible que variables de un mismo nombre existan en alcances diferentes. } { int i. { int f. g. { int f. g. Alcances en el código int a. Variable declarada en un bloque interno domina sobre la variable del mismo nombre en el bloque externo. i tienen alcance al bloque verde i tiene alcance al bloque rojo f tiene alcance al bloque azul 10 © 2011 Waldo Valenzuela Alcances de bloques Bloque: secuencia de código delimitada por llaves “{ }”. Alcance a nivel de bloque. Nombres de variables en un alcance deben ser únicos.

read('-'-'-'. } Resultado de la ejecución entero = 100 flotante = 331.}"].i["] < i. Esto puede ser: Una expresión escrita en lenguaje de comandos La invocación de un interprete.790009 doble = 844000000000. entero.'/'/'/')).44e+11. double doble = 8. doble.i---j.++i){-i. char caracter = ‘W’.i.i+++"hello.Ejemplo de declaraciones #include <stdio. junto con la fuente del programa para que este lo ejecute La invocación del compilador para que este compile y ejecute el programa compilado C One Liners Qué hace el siguiente programa de una línea? int i.main(){for(.i/i).h> int main(void) { int entero = 100. float flotante = 331. sed.79. verdad). y Perl tradicionalmente han sido expertos expresiones mediante One-liners. world!\n". flotante. world!” 15 © 2011 Waldo Valenzuela 16 Algunos lenguajes de programación dinámicos como AWK. printf(“entero = %d\nflotante = %f\ndoble = %lf\ncaracter = %c\nverdad = %i\n”.} Imprime “hello.}read(j. © 2011 Waldo Valenzuela . _Bool verdad = 0.000000 caracter = W verdad = 0 Nótese que los números de punto flotante se imprimen con 6 decimales Error en flotante? Representación interna genera un error © 2011 Waldo Valenzuela 13 © 2011 Waldo Valenzuela 14 C One Liners Una sola línea de texto se introduce a la línea de comandos o shell del sistema operativo para realizar alguna función en una sola línea de entrada. caracter.p){wri te(j/p+p.

N[5000].P("|"))for(e=C.e--.i.}else e=d>b++?b[1]:e.f|d>=b.k.a[4].j.c.P("_"))P(" ").f+=c&16*!j.--s.s<4.for(.M[g]=c|1<<s.f.m[]={1.-1.R=22.*u=M.P("_ "+(*u++/8)%2))P("| "+(*u/4)%2).C-1.C One Liners Qué hace el siguiente programa de una línea? #define P(X)j=write(1.for(s=C.l[]={0.*b=N.C}.e.-C.j=j<f?f:j.P("\n").R-.for(s=f=0.1) #define C 39 int M[5000]={2}.M[*d++=e]=f|1<<(s+2)%4.s.*d=N.if (f){f=M[e=m[s=a[rand()/(1+2147483647/f)]]+g].g.main(){for(M[i=C*R1]=24.1.X.){c=M[g=i].} C One Liners © 2011 Waldo Valenzuela 17 © 2011 Waldo Valenzuela 18 .i=e.}P(" ").s++)if((k=m[s]+g)>= 0&&k<C*R&&l[s]!=k%C&&(!M[k]||!j&&c>=16!=M[k]>=16))a[f++]=s.1}.