Lenguaje C (Instrucciones)

PRIMITIVAS DEL LENGUAJE C

En C las mayúsculas y las minúsculas son diferentes. Todas las palabras claves de C, que son 43 (32 del standard ANSI y 11 de TURBO C), están en minúscula, por lo tanto else es palabra clave, mientras que ELSE o Else no lo son.

El estándar ANSI C reconoce las siguientes 32 instrucciones del lenguaje como palabras reservadas:

auto const double float int short struct unsigned
break continue else for long signed switch void
case default enum goto register sizeof typedef volatile
char do extern if return static union while

En algunas implementaciones de C existirán adicionalmente más palabras reservadas como asm, typeof, inline, etc. que no necesariamente formen parte del estándar. Por lo que se le sugiere al estudiante avanzado familiarizarse con las palabras reservadas (keywords) existentes en cada implementación que se elija.

IDENTIFICADORES

Los identificadores representan los nombres que le damos a las variables y funciones de un programa. Son una secuencia de caracteres de cualquier longitud que siguen ciertas reglas:

  1. Deben comenzar con una letra o “_” (carácter subrayado) y no pueden contener espacios en blanco.
  2. Las vocales no pueden llevar tilde, acento ni diéresis
  3. Letras, dígitos y carácter subrayado están permitidos después del primer carácter.
  4. Una palabra reservada tiene un significado especial por lo que no deben ser empleadas como identificadores
  5. Por último, es aconsejable que los identificadores tengan un significado afín a lo que representan.

Ejemplo 1:

Algunos identificadores válidos que pueden ser definidos por el programador son:

   Numero                 dia_del_mes                             PINGUINO1
_ciudad                  Z

Ejemplo 2:

Los siguientes identificadores no son válidos por incumplir la segunda regla:
123                          _DÍA                          numero*
lugar de nacimiento                                 año

NOTA: Recuerde que los identificadores son sensibles a minúsculas y mayúsculas, por ejemplo:

Mes y mes son considerados identificadores distintos.

Reglas de indentación

Después de un inicio de bloque de sentencias se suele agregar una sangría o tabulación a la que generalmente en programación denominamos indentación.  La indentación nos permite identificar de manera gráfica la pertenencia de un grupo de sentencia a un bloque, permitiendo saber por simple observación que partes del programa se relacionan entre sí, donde se producen las rupturas principales y cuales proporciones están contenidas dentro de cada ciclo.

La indentación es parte de una buena técnica de construcción de programas, ya que prolonga la vida y el mantenimiento del sistema computacional, además de permitir una lectura eficiente del programa por parte de terceros.

El bloque de instrucciones de las sentencias de selección y de los ciclos y las estructuras de selección múltiple deben estar así mismo en el siguiente nivel de indentación en el que está la instrucción a la cual se subordinan.

TIPOS DE DATOS

El tipo de dato es todo aquel valor específico que pueden ser representados por una variable. En C, cada variable tiene un tipo de dato explícito que determina cómo será interpretado por la computadora, así pues están disponibles los siguientes tipos de datos nativos:

El tipo de dato char consiste de caracteres alfanuméricos, es decir, letras, dígitos y símbolos especiales. Cada carácter debe ser encerrado entre comillas simples, ya que el compilador necesita diferenciar entre ‘8’ y 8, debido a que serán almacenados de manera distinta. Recuerde que los valores de tipo char pueden ser comparados e inclusive es posible realizar operaciones de sustracción y suma entre ellos, de manera que podemos indicar si ‘A’ > ‘B’.

Además están disponibles los identificadores complementarios como unsigned que permite generar tipos de datos con rango positivo lo que suele incrementar la cantidad de valores positivos que pueden ser insertados de manera que una variable de tipo unsigned char nos permite asignar valores en el rango de 0 a 255, y finalmente long, que de manera simple equivale a un tipo int pero que empleado en combinación con double (long double) nos proporciona hasta 12 bytes de espacio para números de punto flotante.

Las literales numéricas varían según el tipo de la base que se indique, es decir, podemos representar cualquier número decimal empleando los dígitos (del 0 al 9), también es posible declarar valores octales anteponiendo el digito “0” al número octal que pretendamos representar, y finalmente podemos emplear valores en base hexadecimal empezando dichos números con el prefijo “0x” seguido del numero hexadecimal empleando las letras de la A a la F para los valores de 10 a 15, empleando indistintamente mayúsculas o minúsculas.

Para el caso de los números reales es posible representar cualquier valor en un rango permisible de punto flotante y podrá emplearse, inclusive, la representación exponencial para dichos números, además del uso de sufijos como F “float” y L “long” que permiten especificar el tipo de dato de la literal numérica, recuerde que no es obligatorio el uso de dichos sufijos.

DECLARACIÓN DE VARIABLES Y CONSTANTES

Los identificadores son los nombres que les damos a las variables y las constantes para asociarles un tipo de dato, y posteriormente ser usadas en los programas.

De esta manera en C las variables son identificadores que deben ser declarados en la parte inicial posterior a la función main, después de la llave de apertura “{“; su valor podrá ser modificado a lo largo del programa. Al igual que en la mayoría de los lenguajes de programación su sintaxis permite la declaración de múltiples variables separadas por coma:

Sintaxis:  <tipo-de-dato> identificador[= valor], identificador1 [= valor], …;

Por otro lado, las constantes son identificadores con valores fijos, ya que una vez declarados e inicializados no cambian su valor a lo largo de la ejecución del programa. Para declarar una constante solo es necesario anteponer la palabra reservada const e inicializarla con su valor definitivo:

Sintaxis:  const <tipo-de-dato> identificador = valor;

El siguiente ejemplo muestra la forma en que podemos declarar e inicializar las diversas variables empleando los tipos ya explicados, recuerde que el valor de las variables inicializadas en la declaración puede ir cambiando a lo largo de la ejecución del programa:

El tipo void se comporta sintácticamente como un tipo de dato fundamental, sin embargo solo puede ser usado como parte de un tipo derivado, por lo que no existen variables de tipo void. Es usado para especificar que una función no regresa valor alguno o en algunos casos como base para un tipo de dato puntero, más adelante se abordara con mayor detalle este punto.

Tipo de dato derivado Entre los tipos de datos derivados encontramos los arreglos, las estructuras, las funciones y los punteros que más adelante serán tratados con detenimiento.

ESTATUTOS DE ASIGNACIÓN

En el lenguaje C existen expresiones de asignación, para las cuales se utilizan los siguientes operadores:

Operadores de Asignación en C
Operador Descripción Equivalencia (ejemplo)
= Asignación variable = valor
+= Suma y asignación variable = variable + valor
-= Resta y asignación variable = variable - valor
*= Multiplicación y asignación variable = variable * valor
/= División y asignación variable = variable / valor
%= Modulo y asignación variable = variable % valor

De ellos, el más utilizado es el operador de asignación (=) y su sintaxis es la siguiente:

<nombre_de_la_variable> = <expresión>;