ポインターを使用して 2 つの数値を交換する

ポインタの概要:

ポインタは、他のデータ型のメモリ アドレスを格納するために C++ によって提供されるデータ型です。

構文:

<data_type> pointer_name;

ここで data-type は、ポインターが値を保持する変数のデータ型です。

* ' アスタリック演算子は、ポインターが格納しているアドレスの値にアクセスするために使用されます。

int *a;

int b=12;

cout<<a<<”\n”;

cout<<*a;

このプログラムでは、3 行目はメモリ内の b のアドレスを出力し、4 行目は b(I.e.12) の値を出力します。続きを読む

与えられた問題へのアプローチ:

ポインターを使用して 2 つの数値を交換するには、まず値を通常の変数に格納し、それらへの 2 つのポインターを宣言します。次に、ポインター temp を宣言します。次に、「*」演算子を使用して、最初のポインターの値を temp に格納します。次に、最初のポインターの値を 2 番目のポインターの値と等しくなるように変更し、2 番目のポインターの値を temp の値と等しくなるように設定します。

アルゴリズム:

<オール>
  • ユーザーから 2 つの数字を入力し、a と b に格納します。
  • スリーポイント x、y、および temp を宣言します。
  • 「x」の値を「temp」に設定します。
  • 「y」の値を「x」に設定します。
  • 「temp」の値を「x」に設定します。
  • ポインタ「x」と「y」を使用して、スワップ後の数字を表示します。
  • コード:

    #include <iostream>
    
    using namespace std;
    
    int main()
    
    {   int a,b;
    
    cout << "Enter two numbers\n"; //taking input from the user
    
    cin>>a>>b;
    
    int *x,*y,temp;
    
    x=&a; //setting pointers to store the address of
    
    y=&b; // variables containing entered values
    
    temp=*x; //swapping
    
    *x=*y;
    
    *y=temp;
    
    cout<<"Numbers after swapping:"; //displaying the numbers after swapping
    
    cout<<"\nfirst number="<<a;
    
    cout<<"\nsecond number="<<b;
    
    return 0;
    
    }

    出力:

    Enter two numbers: 
    14 16
    
    Number after swapping:
    first number=16
    second number=14