Переменные Objective-C

Переменная - это не что иное, как имя, присвоенное области памяти, которой могут управлять наши программы. Каждая переменная в Objective-C имеет определенный тип, который определяет размер и структуру памяти переменной; диапазон значений, которые можно сохранить в этой памяти; и набор операций, которые можно применить к переменной.

Имя переменной может состоять из букв, цифр и символа подчеркивания. Он должен начинаться либо с буквы, либо с подчеркивания. Прописные и строчные буквы различны, потому что Objective-C чувствителен к регистру. Основываясь на основных типах, описанных в предыдущей главе, будут следующие основные типы переменных:

Sr. No. Тип и описание
1

char

Обычно один октет (один байт). Это целочисленный тип.

2

int

Самый естественный размер целого числа для машины.

3

float

Значение с плавающей запятой одинарной точности.

4

double

Значение с плавающей запятой двойной точности.

5

void

Представляет отсутствие типа.

Язык программирования Objective-C также позволяет определять различные другие типы переменных, которые мы рассмотрим в следующих главах, таких как Enumeration, Pointer, Array, Structure, Union и т. Д. В этой главе давайте изучим только основные типы переменных.

Определение переменной в Objective-C

Определение переменной означает указание компилятору, где и сколько создать хранилище для переменной. Определение переменной указывает тип данных и содержит список из одной или нескольких переменных этого типа следующим образом:

type variable_list;

Вот, type должен быть допустимым типом данных Objective-C, включая char, w_char, int, float, double, bool или любой пользовательский объект и т. д., и variable_listможет состоять из одного или нескольких имен идентификаторов, разделенных запятыми. Здесь показаны некоторые действительные декларации -

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

Линия int i, j, k;оба объявляют и определяют переменные i, j и k; который инструктирует компилятор создать переменные с именами i, j и k типа int.

Переменные могут быть инициализированы (присвоено начальное значение) в их объявлении. Инициализатор состоит из знака равенства, за которым следует постоянное выражение:

type variable_name = value;

Некоторые примеры -

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

Для определения без инициализатора: переменные со статической продолжительностью хранения неявно инициализируются NULL (все байты имеют значение 0); начальное значение всех остальных переменных не определено.

Объявление переменной в Objective-C

Объявление переменной обеспечивает компилятору гарантию того, что существует одна переменная с данным типом и именем, так что компилятор приступит к дальнейшей компиляции, не требуя полной информации о переменной. Объявление переменной имеет значение только во время компиляции, компилятору требуется фактическое объявление переменной во время компоновки программы.

Объявление переменной полезно, когда вы используете несколько файлов и определяете переменную в одном из файлов, который будет доступен во время связывания программы. Вы будете использоватьexternключевое слово для объявления переменной в любом месте. Хотя вы можете объявлять переменную несколько раз в своей программе Objective-C, но она может быть определена только один раз в файле, функции или блоке кода.

пример

Попробуйте следующий пример, где переменные были объявлены вверху, но они были определены и инициализированы внутри основной функции:

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

Когда приведенный выше код компилируется и выполняется, он дает следующий результат:

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

Та же концепция применяется к объявлению функции, где вы указываете имя функции во время ее объявления, а ее фактическое определение может быть дано где угодно. В следующем примере это объясняется с использованием функции C, и, как вы знаете, Objective-C также поддерживает функции стиля C:

// function declaration
int func();

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

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

L-значения и R-значения в Objective-C

В Objective-C есть два вида выражений:

  • lvalue- Выражение, относящееся к области памяти, называется выражением «lvalue». Lvalue может отображаться как левая или правая часть присваивания.

  • rvalue- Термин rvalue относится к значению данных, которое хранится по некоторому адресу в памяти. Rvalue - это выражение, которому не может быть присвоено значение, что означает, что rvalue может появляться справа, но не слева от присваивания.

Переменные - это lvalue, поэтому они могут появляться в левой части присваивания. Числовые литералы являются r-значениями, поэтому не могут быть присвоены и не могут отображаться с левой стороны. Ниже приводится действительное заявление -

int g = 20;

Но следующее не является допустимым заявлением и приведет к ошибке времени компиляции:

10 = 20;