Sie sind auf Seite 1von 4

Programacin en

C/C++

Operadores operacionales:

Operadores lgicos:

Tipos de datos elementales en C

char carcter
int enteros
float reales
double reales de mayor rango

Modificadores de tipo:

signed tipo con signo

unsigned tipo sin signo

long tipo largo

short tipo corto


Tipo
char
unsigned char
signed char
int
unsigned int
signed int
short int
long int
unsigned long int
float
double
long double

Tamao de bits
8
8
8
32
32
32
16
32
32
32
64
80

Conversin de tipos
Conversin implcita: la realiza de forma automtica el compilador.

Rango
-128 a 127
0 a 255
-128 a 127
-2147483648 a 2147483647
0 a 4294967295
Igual que int
-32.768 a +32.767
Igual que int
Igual que unsigned int
3,410-38 a 3,410+38
1,710-308 a 1,710+308
3,410-4932 a 1,110-38

Identificadores
Reglas C:
secuencia de letras: az, AZ, 09, junto con el smbolo _
el primer carcter no puede ser un dgito
se distingue entre MAYSCULAS y minsculas
hasta 31 caracteres de longitud.
Palabras reservadas de C: auto, break, double, else, enum, int, struct, long,
register, switch, case, typedef, char, extern, return, union, const, float, short,
unsigned, continue, for, signed, void, default, goto, sizeof, volatile, do, if,
static, while.
El uso de la instruccin goto est prohibida.

Conversin explcita: la realiza el programador mediante un molde.

Conversin en asignaciones: el valor del resultado de la evaluacin de la


expresin de la parte derecha se convierte al tipo de la variable de la
izquierda. Ejemplo:
int x;
float f = 23.48;
.........
x = f; //nos quedamos con la parte entera.

Estructura de un programador en C

Valores
Tipos de valores:
Valores de tipo carcter: char letra=a;
char letra=97;
Una constante de carcter tiene un valor entero correspondiente en
la tabla ASCII (equivalencia tabla ASCII).
Valores de tipo entero: int valor= 20;
valor = 0x5F; (en hexadecimal)
valor = 0177; (en octal)
Valores de tipo coma flotante: float numero= 12.345;
numero = -3.8e-3;
numero = 46.34E-2;

Expresiones
o
o

El operador de asignacin = atribuye a una variable el resultado


de una expresin o el valor de otra variable.
Operadores aritmticos:

Escritura en pantalla y lectura de teclado


1.

2.

Incluir la librera que permite el uso de las funciones de


lectura/escritura de datos.
#include <stdio.h>
Realizarlas con:

printf (escritura) y scanf (lectura): admite modificadores.

gets (lectura) y puts (escritura): lectura y escritura por pantalla de


una cadena de caracteres.

getchar (lectura) y putchar (escritura): lectura y escritura de un


carcter.

printf:
printf (cadena a imprimir ms modificadores de formato , secuencia de
variables, valores o expresiones separados por coma). Modificadores de
formatos ms usados:

%d - entero decimal con signo

%u - entero decimal sin signo

Pgina | 1


%f - real en coma flotante

%c - carcter

%s - cadena de caracteres

%x %X - entero hexadecimal

%o - entero octal
En la cadena de control se pueden indicar tambin:

Saltos de lnea \n

Tabulaciones \t

Dobles comillas \
scanf:
scanf (modificador de formato, variable precedida por el smbolo &);
Formatos ms usados:

%d - entero decimal con signo

%u - entero decimal sin signo

%f - float

%lf - double

%c - carcter

%s - cadena de caracteres

%x %X - entero hexadecimal

%o - entero octal

case valor2: sentencia1;


sentencia2;
-------------------------------default: sentencia1;
sentencia2;
--------}
La instruccin break se emplear para romper el caso, si procede.
Instrucciones de iteracin: while, do while, for.
while:
while (condicin) instruccin o bloque de instruccin.
do while:
do
instruccin o bloque de instrucciones
while (condicin);
for:
for (inicializacin; condicin; modificacin)
instrucciones o bloque de instrucciones

Declaracin de una funcin o prototipo


getchar:
Lee un solo carcter del teclado.
char c;
-------c = getchar();

Tipo_valor_retorno nombre_funcin (lista de argumentos formales


separados por coma);

putchar:
Muestra un carcter en pantalla.
char c = a ;
--------putchar(c);

Cuerpo o definicin de una funcin

gets:
Lee una secuencia de caracteres tecleada y la almacena en una cadena de
caracteres hasta que se pulsa la tecla Enter.
puts:
Muestra en pantalla una secuencia de caracteres e incluye al final un salto
de lnea.

Instrucciones en C
Instrucciones de seleccin: if, switch.
Escritura de condiciones en C: una condicin se expresar mediante el uso
de operadores relacionales y lgicos y su resultado ser VERDADERO o
FALSO. Importante: en C el valor 0 se asocia a FALSO y cualquier valor
distinto de cero a VERDADERO.

La declaracin de la funcin ha de
directivas del procesador.

Es el conjunto de sentencias o instrucciones necesarias para que la funcin


pueda realizar las tareas para las que ha sido prevista.

Activacin o llamada a una funcin


Las funciones se llaman (activan o invocan) mediante su nombre seguido de
los argumentos actuales, dentro del programa principal (main) o dentro de
otra funcin.

Paso de argumentos a una funcin


Paso por valor: si el argumento modifica su valor dentro de la funcin,
una vez que la funcin finaliza, el argumento permanece inalterado.
Paso por referencia: si el argumento modifica su valor dentro de la
funcin, una vez que la funcin finaliza, el argumento mantiene el valor
que tom dentro de la funcin.

Arrays
Tipo_de_dato Nombre_del_Array [dimensin1] [dimensinN];
Arrays de una dimensin (vectores):
int a, b, c; es equivalente a

if:
if (condicin) { instruccin1; instruccin2; ---------}
else { instruccin1; instruccin2; ---------}
if else if:
if (condicin1) instruccin o bloque de instrucciones
else if (condicin2) instruccin o bloque de instrucciones
else if (condicin3) instruccin o bloque de instrucciones
else instruccin o bloque de instrucciones
switch:
switch (variable de tipo int o char) {
case valor1: sentencia1;
sentencia2;
---------

hacerse antes del main y tras las

int vars[3];

Para acceder a un elemento del vector se usa un ndice. El primer elemento


del vector tiene asociado el ndice 0.
a = 2;
vars[0] = 2;
b = 4;
vars[1] = 4;
c = 6;
vars[2] = 6;
Si modificamos un array dentro de una funcin, la modificacin permanece
una vez finalizada la funcin. Los arrays, sean del tipo que sean, siempre se
pasan por referencia a una funcin.
Arrays de dos dimensiones (matrices):
Tipo_de_dato Nombre_del_Array[dimensin1] [dimensin2];

Cadena de caracteres
Es una secuencia de caracteres ASCII almacenados en un vector y donde el
ltimo carcter del vector es el carcter nulo (\0). La existencia de dicho
carcter especial al final de la cadena es imprescindible para que algunas de

Pgina | 2

las operaciones que se realizan sobre las cadenas funcionen correctamente.


Ejemplos:
char texto[] = California; (el vector texto es un vector de 11 elementos,
donde el elemento undcimo representa el carcter nulo (\0)).
char texto[11] = California; (declaramos un vector del tamao justo)
Manipulacin de cadenas de caracteres:
1. Incluir la librera string.h.
#include <string.h>
2. Funciones incluidas en la librera:
a) strcpy (cadena_destino, cadena_origen). Copia la cadena_origen en la
cadena_destino.
b) strcat (cadena_destino, cadena_origen). Pega (concatena) al final de la
cadena_destino la cadena_origen.
c) strlen(cadena). Devuelve la longitud de la cadena como un int.
d) strcmp(cadena1, cadena2). Compara la cadena1 con la cadena2 y
devuelve:
0 si cadena1 es exactamente igual a cadena2.
<0 si cadena1 est antes que cadena2 en el diccionario.
>0 si cadena1 est despus que cadena2 en el diccionario.

Memoria en el lenguaje C
El acceso y el almacenamiento de direcciones de memoria se realizan
mediante punteros.
Puntero variable que contiene una direccin de memoria.
Declaracin de una variable puntero:
tipo_de_dato *nombre_de_puntero.
Ejemplo: int *puntero
Importante: El nombre del puntero es un identificador similar al de una
variable convencional o al de una funcin, y que por tanto debe ajustarse a
las reglas de C sobre identificadores. Antes de ser usada, una variable de tipo
puntero debe ser inicializada.

matriz[i]=(int *)malloc(sizeof(int)*3);
}
Reservamos memoria dinmica para almacenar nueve enteros (matriz).
La funcin malloc(), siempre devolver una direccin de memoria a una
zona de memoria libre, de tantos bytes como le especifiquemos.
Liberacin de espacio reservado de memoria
Deberemos liberar el bloque de memoria reservado para el contenido de un
puntero en el caso de que ya no vaya a usarse mediante la funcin
free(nombre_del_puntero).
En el caso de una matriz, debemos liberar la memoria en dos pasos:
for(int i = 0; i<=2; i++){
free(matriz[i]);
}
free(matriz);
Arrays y punteros
El nombre de un vector sin ningn ndice se considera un puntero, el cual
apunta al primer elemento del mismo. Por otra parte, cualquier variable
puntero puede apuntar a elementos del vector, lo que hace que los elementos
del vector sean accesibles mediante otro puntero distinto al nombre del
vector. Ejemplo:
int a[10], *p;
p = &a[2];
En cuanto a las matrices (arrays bidimensionales), el nombre de una matriz
es un puntero que apunta al primer elemento de la matriz, que a su vez ser
un puntero que apuntar a un vector. De esta forma, tambin podremos
realizar reserva dinmica de memoria para un matriz cualquiera de n filas
por m columnas durante la ejecucin de un programa.

El procesador en el lenguaje C
Operaciones a nivel de bit

El operado & y el operador * (ambos tienen mayor prioridad que los


operadores aritmticos)
& devuelve la direccin de memoria de la variable especificada tras l.
Ejemplo: int a = 23; int *p; p = &a;
* devuelve el valor almacenado en la direccin especificada tras l.
Ejemplo: int a = 23, b; int *p; p = &a; b = *p;
Operaciones aritmticas con los punteros: suma y resta
Slo se puede sumar o restar un valor entero a un puntero, teniendo en
cuenta la siguiente regla: en cada operacin, de suma o resta, la direccin
contenida en la variable de tipo puntero ser desplazada, hacia delante
(suma) o hacia atrs (resta), un nmero de bytes mltiplo del tamao del tipo
del puntero. Ejemplo:
int x = 10, *p1, *p2;
p1 = x;
p2 = p1+3; //la direccin contenida en p2 ser
//incrementada tres veces el tamao
//en bytes que ocupa un entero.
Reserva dinmica de memoria
Es posible reservar un espacio en memoria de tamao determinado para que
el puntero apunte a l. Dicha operacin se realiza mediante una funcin
denominada malloc(nmero_de_bytes), incluida dentro de la librera de C
stdlib.h. Ejemplo:
int *p;
p = (int *) malloc(sizeof(int)*10);
Reservamos memoria dinmica para almacenar diez enteros (vector).

Mscaras de bits en el lenguaje C


El operador AND (X AND 0 = 0 y X AND 1 = X) puede emplearse con una
mscara para:

Forzar bits a cero;

Conocer si un bit est a uno o a cero;

Extraer un grupo de bits.


El operador OR (X OR 0 = X y X OR 1 = 1) puede emplearse para:

Forzar bits a uno.


El operador XOR (X XOR 0 = X y X XOR 1 = X ) puede emplearse para:

Complementar bits.
Desplazamiento de bits en el lenguaje C
>> y << equivalen a dividir y multiplicar, respectivamente, por potencias de
2, y tambin se utilizan para componer y descomponer nmeros.
Ejemplo 1: separar un nmero de 16 bits en 2 bytes:

int **matriz;
matriz=(int **)malloc(sizeof(int *)*3);
for(int i=0;i<=2;i++){

Pgina | 3

Ejemplo 2: componer un nmero de 16 bits a partir de 2 bytes distintos

Pgina | 4

Das könnte Ihnen auch gefallen