Objective-c-variables

提供:Dev Guides
移動先:案内検索

Objective-Cの変数

変数は、プログラムが操作できるストレージ領域に付けられた名前に他なりません。 Objective-Cの各変数には特定のタイプがあり、変数のメモリのサイズとレイアウトを決定します。そのメモリ内に保存できる値の範囲。変数に適用できる一連の操作。

変数の名前は、文字、数字、およびアンダースコア文字で構成できます。 文字またはアンダースコアで始まる必要があります。 Objective-Cでは大文字と小文字が区別されるため、大文字と小文字は区別されます。 前の章で説明した基本タイプに基づいて、次の基本変数タイプがあります-

Sr.No. Type & Description
1

char

通常、単一のオクテット(1バイト)。 これは整数型です。

2

int

マシンの整数の最も自然なサイズ。

3

float

単精度浮動小数点値。

4

double

倍精度の浮動小数点値。

5

void

タイプがないことを表します。

Objective-Cプログラミング言語では、その他のさまざまなタイプの変数を定義することもできます。これについては、列挙、ポインター、配列、構造、ユニオンなどの後続の章で説明します。 この章では、基本的な変数タイプのみを学習します。

Objective-Cの変数定義

変数の定義とは、変数のストレージを作成する場所と量をコンパイラーに伝えることです。 変数の定義は、データ型を指定し、次のようにその型の1つ以上の変数のリストが含まれています-

type variable_list;

ここで、 type はchar、w_char、int、float、double、boolまたは任意のユーザー定義オブジェクトなどを含む有効なObjective-Cデータ型である必要があり、 variable_list は1つ以上の識別子名で構成されます。コンマ。 いくつかの有効な宣言がここに示されています-

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

int i、j、k; は、変数i、jおよびkを宣言および定義します。これは、int型のi、j、kという名前の変数を作成するようコンパイラーに指示します。

変数は、宣言で初期化(初期値を割り当て)できます。 初期化子は、等号とそれに続く定数式で構成されます-

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の変数宣言

変数宣言は、指定された型と名前を持つ変数が1つ存在することをコンパイラに保証するため、コンパイラは、変数に関する完全な詳細を必要とせずに、さらにコンパイルを進めることができます。 変数宣言はコンパイル時にのみ意味を持ち、コンパイラはプログラムのリンク時に実際の変数宣言を必要とします。

変数宣言は、複数のファイルを使用していて、プログラムのリンク時に使用できるファイルの1つで変数を定義する場合に役立ちます。 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;
}

Objective-Cの左辺値と右辺値

Objective-Cには2種類の式があります-

  • lvalue -メモリ位置を参照する式は「lvalue」式と呼ばれます。 左辺値は、割り当ての左辺または右辺として表示される場合があります。
  • rvalue -rvalueという用語は、メモリ内のあるアドレスに格納されているデータ値を指します。 右辺値は、値を割り当てることができない式です。つまり、右辺に割り当てることができますが、割り当ての左側ではありません。

変数は左辺値であるため、割り当ての左側に表示される場合があります。 数値リテラルは右辺値であるため、割り当てられない可能性があり、左側に表示できません。 以下は有効なステートメントです-

int g = 20;

しかし、以下は有効なステートメントではなく、コンパイル時エラーを生成します-

10 = 20;