Variabili Objective-C

Una variabile non è altro che un nome dato a un'area di memoria che i nostri programmi possono manipolare. Ogni variabile in Objective-C ha un tipo specifico, che determina la dimensione e il layout della memoria della variabile; l'intervallo di valori che possono essere memorizzati all'interno di quella memoria; e l'insieme di operazioni che possono essere applicate alla variabile.

Il nome di una variabile può essere composto da lettere, cifre e il carattere di sottolineatura. Deve iniziare con una lettera o un trattino basso. Le lettere maiuscole e minuscole sono distinte perché Objective-C distingue tra maiuscole e minuscole. In base ai tipi di base spiegati nel capitolo precedente, ci saranno i seguenti tipi di variabili di base:

Sr.No. Tipo e descrizione
1

char

Tipicamente un singolo ottetto (un byte). Questo è un tipo intero.

2

int

La dimensione più naturale del numero intero per la macchina.

3

float

Un valore in virgola mobile a precisione singola.

4

double

Un valore in virgola mobile a precisione doppia.

5

void

Rappresenta l'assenza di tipo.

Il linguaggio di programmazione Objective-C permette anche di definire vari altri tipi di variabili, che tratteremo nei capitoli successivi come Enumeration, Pointer, Array, Structure, Union, ecc. Per questo capitolo, studiamo solo i tipi di variabili di base.

Definizione variabile in Objective-C

Una definizione di variabile significa dire al compilatore dove e quanto creare la memoria per la variabile. Una definizione di variabile specifica un tipo di dati e contiene un elenco di una o più variabili di quel tipo come segue:

type variable_list;

Qui, type deve essere un tipo di dati Objective-C valido che includa char, w_char, int, float, double, bool o qualsiasi oggetto definito dall'utente, ecc. e variable_listpuò essere costituito da uno o più nomi di identificatori separati da virgole. Alcune dichiarazioni valide sono mostrate qui -

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

La linea int i, j, k;entrambi dichiara e definisce le variabili i, j e k; che indica al compilatore di creare variabili denominate i, j e k di tipo int.

Le variabili possono essere inizializzate (assegnato un valore iniziale) nella loro dichiarazione. L'inizializzatore è costituito da un segno di uguale seguito da un'espressione costante come segue:

type variable_name = value;

Alcuni esempi sono:

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

Per la definizione senza un inizializzatore: le variabili con durata di memorizzazione statica vengono inizializzate implicitamente con NULL (tutti i byte hanno il valore 0); il valore iniziale di tutte le altre variabili non è definito.

Dichiarazione delle variabili in Objective-C

Una dichiarazione di variabile fornisce la garanzia al compilatore che esiste una variabile esistente con il tipo e il nome dati in modo che il compilatore proceda per un'ulteriore compilazione senza bisogno di dettagli completi sulla variabile. Una dichiarazione di variabile ha il suo significato solo al momento della compilazione, il compilatore necessita di una dichiarazione di variabile effettiva al momento del collegamento del programma.

Una dichiarazione di variabile è utile quando si utilizzano più file e si definisce la variabile in uno dei file, che sarà disponibile al momento del collegamento del programma. Useraiexternparola chiave per dichiarare una variabile in qualsiasi posizione. Sebbene tu possa dichiarare una variabile più volte nel tuo programma Objective-C, ma può essere definita solo una volta in un file, una funzione o un blocco di codice.

Esempio

Prova il seguente esempio, dove le variabili sono state dichiarate in alto, ma sono state definite e inizializzate all'interno della funzione 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;
}

Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:

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

Lo stesso concetto si applica alla dichiarazione di funzione in cui si fornisce un nome di funzione al momento della sua dichiarazione e la sua definizione effettiva può essere fornita altrove. Nell'esempio seguente, viene spiegato usando la funzione C e come sai Objective-C supporta anche le funzioni in stile C:

// function declaration
int func();

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

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

Lvalues ​​e Rvalues ​​in Objective-C

Esistono due tipi di espressioni in Objective-C:

  • lvalue- Le espressioni che fanno riferimento a una posizione di memoria sono chiamate espressione "lvalue". Un lvalue può apparire sia come lato sinistro che come lato destro di un compito.

  • rvalue- Il termine rvalue si riferisce a un valore di dati archiviato in un indirizzo in memoria. Un rvalue è un'espressione a cui non può essere assegnato un valore, il che significa che un rvalue può apparire sul lato destro ma non sinistro di un compito.

Le variabili sono i valori e quindi possono apparire sul lato sinistro di un compito. I letterali numerici sono rvalues ​​e quindi potrebbero non essere assegnati e non possono essere visualizzati sul lato sinistro. La seguente è una dichiarazione valida:

int g = 20;

Ma la seguente non è una dichiarazione valida e genererebbe un errore in fase di compilazione -

10 = 20;