Variables Objective-C

Une variable n'est rien d'autre qu'un nom donné à une zone de stockage que nos programmes peuvent manipuler. Chaque variable dans Objective-C a un type spécifique, qui détermine la taille et la disposition de la mémoire de la variable; la plage de valeurs pouvant être stockées dans cette mémoire; et l'ensemble des opérations qui peuvent être appliquées à la variable.

Le nom d'une variable peut être composé de lettres, de chiffres et du caractère de soulignement. Il doit commencer par une lettre ou un trait de soulignement. Les lettres majuscules et minuscules sont distinctes car Objective-C est sensible à la casse. Sur la base des types de base expliqués dans le chapitre précédent, il y aura les types de variables de base suivants -

N ° Sr. Type et description
1

char

Généralement un seul octet (un octet). Il s'agit d'un type entier.

2

int

La taille entière la plus naturelle de la machine.

3

float

Une valeur à virgule flottante simple précision.

4

double

Une valeur à virgule flottante double précision.

5

void

Représente l'absence de type.

Le langage de programmation Objective-C permet également de définir divers autres types de variables, que nous aborderons dans les chapitres suivants comme Enumeration, Pointer, Array, Structure, Union, etc. Pour ce chapitre, étudions uniquement les types de variables de base.

Définition de variable en Objective-C

Une définition de variable signifie indiquer au compilateur où et combien créer le stockage pour la variable. Une définition de variable spécifie un type de données et contient une liste d'une ou plusieurs variables de ce type comme suit -

type variable_list;

Ici, type doit être un type de données Objective-C valide, y compris char, w_char, int, float, double, bool ou tout objet défini par l'utilisateur, etc., et variable_listpeut consister en un ou plusieurs noms d'identificateurs séparés par des virgules. Certaines déclarations valides sont affichées ici -

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

La ligne int i, j, k;à la fois déclare et définit les variables i, j et k; qui demande au compilateur de créer des variables nommées i, j et k de type int.

Les variables peuvent être initialisées (affectées d'une valeur initiale) dans leur déclaration. L'initialiseur se compose d'un signe égal suivi d'une expression constante comme suit -

type variable_name = value;

Quelques exemples sont -

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'.

Pour une définition sans initialiseur: les variables avec une durée de stockage statique sont implicitement initialisées avec NULL (tous les octets ont la valeur 0); la valeur initiale de toutes les autres variables n'est pas définie.

Déclaration de variable dans Objective-C

Une déclaration de variable fournit l'assurance au compilateur qu'il existe une variable avec le type et le nom donnés afin que le compilateur procède à une compilation ultérieure sans avoir besoin de détails complets sur la variable. Une déclaration de variable n'a sa signification qu'au moment de la compilation, le compilateur a besoin d'une déclaration de variable réelle au moment de la liaison du programme.

Une déclaration de variable est utile lorsque vous utilisez plusieurs fichiers et que vous définissez votre variable dans l'un des fichiers, qui sera disponible au moment de la liaison du programme. Vous utiliserezexternmot-clé pour déclarer une variable à tout endroit. Bien que vous puissiez déclarer une variable plusieurs fois dans votre programme Objective-C, elle ne peut être définie qu'une seule fois dans un fichier, une fonction ou un bloc de code.

Exemple

Essayez l'exemple suivant, où les variables ont été déclarées en haut, mais elles ont été définies et initialisées dans la fonction principale -

#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;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

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

Le même concept s'applique à la déclaration de fonction où vous fournissez un nom de fonction au moment de sa déclaration et sa définition réelle peut être donnée n'importe où ailleurs. Dans l'exemple suivant, il est expliqué en utilisant la fonction C et comme vous le savez, Objective-C prend également en charge les fonctions de style C -

// function declaration
int func();

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

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

Lvalues ​​et Rvalues ​​en Objective-C

Il existe deux types d'expressions en Objective-C -

  • lvalue- Les expressions qui font référence à un emplacement mémoire sont appelées expression "lvalue". Une lvalue peut apparaître comme le côté gauche ou droit d'une affectation.

  • rvalue- Le terme rvalue fait référence à une valeur de données qui est stockée à une certaine adresse en mémoire. Une rvalue est une expression qui ne peut pas avoir de valeur assignée, ce qui signifie qu'une rvalue peut apparaître à droite mais pas à gauche d'une affectation.

Les variables sont des valeurs l et peuvent donc apparaître sur le côté gauche d'une affectation. Les littéraux numériques sont des valeurs r et ne peuvent donc pas être affectés et ne peuvent pas apparaître sur le côté gauche. Voici une déclaration valide -

int g = 20;

Mais suivre n'est pas une instruction valide et générerait une erreur de compilation -

10 = 20;