Variables de Objective-C

Una variable no es más que un nombre que se le da a un área de almacenamiento que nuestros programas pueden manipular. Cada variable en Objective-C tiene un tipo específico, que determina el tamaño y el diseño de la memoria de la variable; el rango de valores que se pueden almacenar dentro de esa memoria; y el conjunto de operaciones que se pueden aplicar a la variable.

El nombre de una variable puede estar compuesto por letras, dígitos y el carácter de subrayado. Debe comenzar con una letra o un guión bajo. Las letras mayúsculas y minúsculas son distintas porque Objective-C distingue entre mayúsculas y minúsculas. Según los tipos básicos explicados en el capítulo anterior, habrá los siguientes tipos de variables básicas:

No Señor. Tipo y descripción
1

char

Normalmente, un solo octeto (un byte). Este es un tipo entero.

2

int

El tamaño más natural de número entero para la máquina.

3

float

Un valor de coma flotante de precisión simple.

4

double

Un valor de coma flotante de doble precisión.

5

void

Representa la ausencia de tipo.

El lenguaje de programación Objective-C también permite definir varios otros tipos de variables, que cubriremos en capítulos posteriores como Enumeración, Puntero, Array, Estructura, Unión, etc. Para este capítulo, estudiemos solo los tipos de variables básicas.

Definición de variable en Objective-C

Una definición de variable significa decirle al compilador dónde y cuánto crear el almacenamiento para la variable. Una definición de variable especifica un tipo de datos y contiene una lista de una o más variables de ese tipo de la siguiente manera:

type variable_list;

Aquí, type debe ser un tipo de datos Objective-C válido que incluya char, w_char, int, float, double, bool o cualquier objeto definido por el usuario, etc., y variable_listpuede constar de uno o más nombres de identificadores separados por comas. Aquí se muestran algunas declaraciones válidas:

int    i, j, k;
char   c, ch;
float  f, salary;
double d;

La línea int i, j, k;declara y define las variables i, j y k; que indica al compilador que cree variables denominadas i, j y k de tipo int.

Las variables se pueden inicializar (asignar un valor inicial) en su declaración. El inicializador consta de un signo igual seguido de una expresión constante de la siguiente manera:

type variable_name = value;

Algunos ejemplos son:

extern int d = 3, f = 5;    // declaration of d and f. 
int d = 3, f = 5;           // definition and initializing d and f. 
byte z = 22;                // definition and initializes z. 
char x = 'x';               // the variable x has the value 'x'.

Para la definición sin un inicializador: las variables con duración de almacenamiento estático se inicializan implícitamente con NULL (todos los bytes tienen el valor 0); el valor inicial de todas las demás variables no está definido.

Declaración de variable en Objective-C

Una declaración de variable proporciona seguridad al compilador de que existe una variable con el tipo y nombre dados, de modo que el compilador proceda a una compilación adicional sin necesidad de detalles completos sobre la variable. Una declaración de variable tiene su significado solo en el momento de la compilación, el compilador necesita una declaración de variable real en el momento de vincular el programa.

Una declaración de variable es útil cuando está utilizando varios archivos y define su variable en uno de los archivos, que estará disponible en el momento de vincular el programa. Usarásexternpalabra clave para declarar una variable en cualquier lugar. Aunque puede declarar una variable varias veces en su programa Objective-C, solo se puede definir una vez en un archivo, una función o un bloque de código.

Ejemplo

Pruebe el siguiente ejemplo, donde las variables se han declarado en la parte superior, pero se han definido e inicializado dentro de la función principal:

#import <Foundation/Foundation.h>

// Variable declaration:
extern int a, b;
extern int c;
extern float f;

int main () {
  /* variable definition: */
  int a, b;
  int c;
  float f;
 
  /* actual initialization */
  a = 10;
  b = 20;
  
  c = a + b;
  NSLog(@"value of c : %d \n", c);

  f = 70.0/3.0;
  NSLog(@"value of f : %f \n", f);
 
  return 0;
}

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

2013-09-07 22:43:31.695 demo[14019] value of c : 30 
2013-09-07 22:43:31.695 demo[14019] value of f : 23.333334

El mismo concepto se aplica a la declaración de función, donde se proporciona un nombre de función en el momento de su declaración y su definición real se puede dar en cualquier otro lugar. En el siguiente ejemplo, se explica el uso de la función C y, como sabe, Objective-C también admite funciones de estilo C:

// function declaration
int func();

int main() {
   // function call
   int i = func();
}

// function definition
int func() {
   return 0;
}

Valores L y valores R en Objective-C

Hay dos tipos de expresiones en Objective-C:

  • lvalue- Las expresiones que se refieren a una ubicación de memoria se denominan expresión "lvalue". Un lvalue puede aparecer como el lado izquierdo o derecho de una tarea.

  • rvalue- El término rvalue se refiere a un valor de datos que se almacena en alguna dirección de la memoria. Un rvalue es una expresión a la que no se le puede asignar un valor, lo que significa que un rvalue puede aparecer en el lado derecho pero no en el izquierdo de una asignación.

Las variables son valores l y, por lo tanto, pueden aparecer en el lado izquierdo de una tarea. Los literales numéricos son valores r y, por lo tanto, no se pueden asignar y no pueden aparecer en el lado izquierdo. A continuación se muestra una declaración válida:

int g = 20;

Pero lo siguiente no es una declaración válida y generaría un error en tiempo de compilación:

10 = 20;