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

ポインタとは何ですか?

A pointer値が別の変数のアドレスである変数です。他の変数や定数と同様に、ポインタを操作する前にポインタを宣言する必要があります。ポインタ変数宣言の一般的な形式は次のとおりです。

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 ++プログラマーにとって明確なはずのいくつかの重要なポインターの概念があります-

シニア番号 コンセプトと説明
1 ヌルポインタ

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

2 ポインタ演算

ポインタで使用できる算術演算子は、++、-、+、-の4つです。

3 ポインタと配列

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

4 ポインタの配列

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

5 ポインタからポインタへ

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

6 関数へのポインタの受け渡し

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

7 関数からのポインタを返す

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