Cplusplus-cpp-pointers

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

C ++ポインター

C ポインターは簡単で楽しく学ぶことができます。 一部のC タスクはポインターを使用してより簡単に実行され、動的メモリ割り当てなどの他のC ++タスクはそれらなしでは実行できません。

ご存じのように、すべての変数はメモリロケーションであり、すべてのメモリロケーションには、メモリ内のアドレスを示すアンパサンド(&)演算子を使用してアクセスできるアドレスが定義されています。 定義された変数のアドレスを出力します次を考慮してください-

#include <iostream>

using namespace std;
int main () {
   int  var1;
   char var2[10];

   cout << "Address of var1 variable: ";
   cout << &var1 << endl;

   cout << "Address of var2 variable: ";
   cout << &var2 << endl;

   return 0;
}

上記のコードをコンパイルして実行すると、次の結果が生成されます-

Address of var1 variable: 0xbfebd5c0
Address of var2 variable: 0xbfebd5b6

ポインターとは何ですか?

  • ポインタ*は、値が別の変数のアドレスである変数です。 他の変数や定数と同様に、操作する前にポインターを宣言する必要があります。 ポインタ変数宣言の一般的な形式は-
type *var-name;

ここで、 type はポインターの基本型です。有効なC ++型である必要があり、 var-name はポインター変数の名前です。 ポインターの宣言に使用したアスタリスクは、乗算に使用したものと同じアスタリスクです。 ただし、このステートメントでは、変数をポインターとして指定するためにアスタリスクが使用されています。 有効なポインター宣言は次のとおりです-

int    *ip;   //pointer to an integer
double *dp;   //pointer to a double
float  *fp;   //pointer to a float
char   *ch    //pointer to character

すべてのポインターの値の実際のデータ型は、整数、浮動小数点、文字、またはその他のいずれであっても同じで、メモリアドレスを表す長い16進数です。 異なるデータ型のポインターの唯一の違いは、ポインターが指す変数または定数のデータ型です。

C ++でのポインターの使用

重要な操作はほとんどなく、非常に頻繁にポインターを使用します。 *(a)*ポインター変数を定義します。 *(b)*変数のアドレスをポインターに割り当てます。 *(c)*最後に、ポインター変数で使用可能なアドレスの値にアクセスします。 これは、オペランドで指定されたアドレスにある変数の値を返す単項演算子*を使用して行われます。 次の例では、これらの操作を利用しています-

#include <iostream>

using namespace std;

int main () {
   int  var = 20;  //actual variable declaration.
   int  *ip;       //pointer variable

   ip = &var;      //store address of var in pointer variable

   cout << "Value of var variable: ";
   cout << var << endl;

  //print the address stored in ip pointer variable
   cout << "Address stored in ip variable: ";
   cout << ip << endl;

  //access the value at the address available in pointer
   cout << "Value of *ip variable: ";
   cout << *ip << endl;

   return 0;
}

上記のコードをコンパイルして実行すると、次のような結果が生成されます-

Value of var variable: 20
Address stored in ip variable: 0xbfc601ac
Value of *ip variable: 20

C ++のポインター

ポインターには簡単ではあるが多くの概念があり、C プログラミングにとって非常に重要です。 C プログラマには明らかなはずの重要なポインタの概念がいくつかあります-

Sr.No Concept & Description
1

Null Pointers

C ++は、いくつかの標準ライブラリで定義されたゼロの値を持つ定数であるヌルポインターをサポートしています。

2

Pointer Arithmetic

ポインターで使用できる4つの算術演算子があります:+、-、、-

3

Pointers vs Arrays

ポインターと配列の間には密接な関係があります。

4

Array of Pointers

配列を定義して、多数のポインターを保持できます。

5

Pointer to Pointer

C ++では、ポインターなどにポインターを置くことができます。

6

Passing Pointers to Functions

参照またはアドレスの両方で引数を渡すと、呼び出された関数によって、呼び出された関数で渡された引数を変更できます。

7

Return Pointer from Functions

C ++では、関数がローカル変数、静的変数、および動的に割り当てられたメモリへのポインターも返すことができます。