Resumen de Sintaxis en C

Resumen de Sintaxis en C 1 Tipos, operadores y expresiones Identificadores: Formados por letras, números y '_'. Los primeros 31 caracteres son significativos (dependiente del compilador). Las mayúsculas y las minúsculas se distinguen (case sensitive). Las palabras reservadas van en minúsculas Tipos de datos: Simples: caracter: char -> 1 byte entero: int Normalmente refleja el tamaño de los enteros en la máquina host short [int] -> 16 bits long [int] -> 32 bits real: float Los tamaños son dependientes de la implementación. double -> Precisión doble long double -> Precisión extendida Complejos: enumeraciones, arreglos, estructuras y uniones. Declaraciones: Todas las variables deben declararse antes de usarse. Una declaración especifica un tipo seguido de una lista no vacía de variables de ese tipo (separadas por comas). float f1, f2; Ejemplo: int i = 1; /* Inicializada al definirla */ Enumeraciones: enum {} enum boolean {false, true} false vale 0, (por defecto) y true vale 1 Ejemplos: enum semana {Lun=1, Mar, Mie, Jue, Vie, Sab, Dom} enum constantes {nl = '\n', cr = '\

1 downloads 141 Views 50KB Size

Recommend Stories


Sintaxis
Lengua. Atributo. Complemento directo e indirecto. Oracioces. Coordinadas. Subordinadas. Pronombres relativos

Story Transcript

Resumen de Sintaxis en C 1

Tipos, operadores y expresiones

Identificadores: Formados por letras, números y '_'. Los primeros 31 caracteres son significativos (dependiente del compilador). Las mayúsculas y las minúsculas se distinguen (case sensitive). Las palabras reservadas van en minúsculas Tipos de datos: Simples: caracter: char

->

1 byte

entero:

int Normalmente refleja el tamaño de los enteros en la máquina host short [int] -> 16 bits long [int] -> 32 bits

real:

float Los tamaños son dependientes de la implementación. double -> Precisión doble long double -> Precisión extendida

Complejos:

enumeraciones, arreglos, estructuras y uniones.

Declaraciones: Todas las variables deben declararse antes de usarse. Una declaración especifica un tipo seguido de una lista no vacía de variables de ese tipo (separadas por comas). float f1, f2; Ejemplo: int i = 1; /* Inicializada al definirla */ Enumeraciones: enum {} enum boolean {false, true} false vale 0, (por defecto) y true vale 1 Ejemplos: enum semana {Lun=1, Mar, Mie, Jue, Vie, Sab, Dom} enum constantes {nl = '\n', cr = '\r'} Arreglos: Ejemplo:

[]. char nombre[30]; arreglo de 30 caracteres- posiciones del 0 al 29.

Estructuras: struct {declaración de los elementos} struct círculo{ Ejemplo: int radio; int x,y; /* Coordenadas del centro */ } circ; Acceso a los campos a través del operador de proyección '.' circ.radio, circ.x, circ.y Declaración de nuevos tipos: typedef typedef struct s_emp{ Ejemplo: char nombre[30]; float sueldo; int dpto; } empleado; Constantes: #define El #define es una directiva para el compilador que indica que se reemplazará por en el texto. Ejemplos: Operadores:

#define MAX_ELEMS 50

Asignación: = Casting: operador que obliga a la conversión a un tipo dado: f = (float) i; /* i no se ve alterado */ Conversiones de tipo: f = i; /* no hace falta el cast */ i = f; /* se trunca f */ Aritméticos: +, -, *, /, %, ++, - -, +=, -=. Hablar de la diferencia entre el pre y el post-decremento i++ vs. ++i Relacionales: >, >=, a ó b !p -> no p

Estructuras de control

Instrucciones: Son expresiones seguidas por punto y coma (;). Las llaves son utilizadas para agrupar instrucciones en bloques, que sintácticamente equivalen a una instrucción. Condicionales: if_else: if (cond) inst1 [else inst2] switch: switch (exp) { case val1: inst1 ... case valn: instn [default: instn+1] } Para romper el flujo de control dentro del bloque insti se utiliza la instrucción break. Ciclos: while while (exp) inst; for do_while:

3

for (exp1; exp2; exp3) inst; do inst; while (cond);

Funciones

En C no existen procedimientos, sólo hay funciones. Los procedimientos pueden ser simulados por medio de funciones que no retornan ningún valor. () { declaraciones; instrucciones; } donde es el tipo de valor que devuelve la función (por defecto int). Para indicar que no se devuelve nada se coloca void.

es una lista de elementos: , separados por comas. Para devolver el valor se tiene la instrucción return . No se pueden devolver estructuras complejas. Pasaje de parámetros: El pasaje de parámetros es siempre por valor. Si se desea simular un pasaje de parámetros por referencia se debe pasar un apuntador por cada variable cuyo valor se desea modificar. Lo que se pasará como parámetro en este caso será la variable apuntador, i.e., la que contiene la dirección de la variable a modificar. Apuntadores:

Ejemplo:

Los apuntadores se declaran así: *; char *s,c; /* s es un apuntador a un caracter */ se puede realizar la siguiente asignación: c = *s; /* c ap + i apunta a a[i]. Esta aritmética es válida para un apuntador a cualquier cosa ya que se toma como unidad el tamaño de lo apuntado, i. e., ap + i implica que a ap se e suma i veces el tamaño del entero para obtener la posición del elemento buscado. Los strings son arreglos de caracteres. Los strings se copian caracter por caracter teniendo apuntadores a cada una de las estructuras en las que se trabaja e "incrementando" el apuntador. La marca de fin de string es '\0'. Apuntadores a funciones: Son tratadas como los arreglos (no se necesita el & para obtener su dirección, ésta la indica su nombre). Palabra reservada void: void implica que falta el valor. Por ejemplo: si una función no retorna ningún valor ni recibe ningún argumento, lucirá así: void f(void) void * : Apuntador a cualquier cosa.

Ejercicio 1: - Pregunta 1 del problemario - Verificar Declaraciones y estudiar alcance de variables. /* archivo p1 */ int k,x; void r1(int a,int b) { int i; i=0; a=2*b; r3(i); printf("%d %d", x,k); } main() { k=1; x=2; r1(k,x); printf("%d %d",x,k); }

ALCANCE var k (global) x (global) a (local r1) b (local r1) i (local r1) i (local r2) a (local r3) x (local r3) y (local r3)

/* archivo p2 */ int r2(int i) { i=i+3; if (k

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.