C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

整数関数ポインタの配列へのポインタを返すC/C++関数を宣言します


与えられた配列でのタスクは、整数関数ポインターの配列へのポインターを返す関数を作成することです。

そのために、2つの値を入力し、2つの値の両方を比較する関数と、より大きな値のメモリアドレスを返す関数ポインタを呼び出し、結果として出力します。関数ポインタは、さまざまな時間にさまざまな関数のアドレスを渡すために使用されるため、関数がより柔軟で抽象的になります。したがって、関数ポインターを使用すると、実行時の値に基づいて実行する関数を選択する簡単な方法を提供することで、コードを簡略化できます。

関数big()の説明

プログラムは、渡された2つの整数値を比較し、大きい方の値のメモリアドレスを返す関数big()を参照して、2つの整数を渡します。 big()の戻り値は整数型であり、ゼロ以外の値でもゼロ以外の値でもかまいません。

入力 − 7 13

出力 −大きい方の値は13

入力 −8 6

出力 −大きい方の値は8

説明 − 2つの整数値があり、比較した後、ポインタは2つの中で最大の値のメモリアドレスを返します。

従うことができるアプローチ

  • 整数ポインタを使用します。たとえば、int*cです。
  • 次に、2つの整数変数を初期化します。
  • その後、2つの値を入力します。
  • 指定された2つの値を比較します。
  • 最後のポインタ*cは、より大きな値のアドレスを返します。

アルゴリズム

Start
STEP 1-> Create the function and pass the argument.
   Int *big(int &, int &)
END
STEP 2-: call the main() function for entering and printing two values and initialize the pointer *c.
   int a, b, *c
   call c= big(a,b)
   print c
END
STEP 3-> compare the two Integer values passed to it and returns the memory address of the bigger value through pointer c.
   Comparing
   If(x>y)
      return(&x)
   else
      return(&y)
   END
STOP
の比較

#include<iostream.h>
Int *big(int&, int&);
Int main( ){
   Int a, b, *c;
   c= big(4, 7);
   cout<<”The bigger value is”<<*c<<”\n”;
   return 0;
}
Int *big(int&x, int&y){
   If(x>y)
      return(&x);
   else
      return(&y);
}

出力

上記のプログラムを実行すると、次の出力が生成されます

The bigger value is 7
The bigger value is 5

  1. newを使用してC++で2D配列を宣言するにはどうすればよいですか

    動的2D配列は、基本的に配列へのポインターの配列です。これは、寸法が3x4の2D配列の図です。 アルゴリズム Begin    Declare dimension of the array.    Dynamic allocate 2D array a[][] using new.    Fill the array with the elements.    Print the array.    Clear the memory by deleting it. End サンプルコード

  2. C / C ++でのアレイの減衰とは何ですか?

    配列とポインタはC/C++でもまったく同じように機能します。しかし、いくつかの微妙な違いがあります。たとえば、sizeof演算子は2つでまったく異なる働きをします。ポインタ内の配列を変換する場合、 例 #include<iostream> int main() {    const int a[] = { 2, 3, 5, 7, 11 };    const int* p = a;    std::cout << ( sizeof(p) != sizeof(a) ); } 出力 これにより出力が得られます-