Computer >> Máy Tính >  >> Lập trình >> C ++

Khai báo một hàm C / C ++ trả về con trỏ cho mảng các con trỏ hàm số nguyên

Với mảng đã cho, nhiệm vụ là tạo một hàm sẽ trả về con trỏ cho một mảng các con trỏ hàm nguyên.

Đối với điều đó, chúng tôi sẽ nhập hai giá trị và gọi một hàm so sánh cả hai giá trị và con trỏ hàm trả về địa chỉ bộ nhớ có giá trị lớn hơn và kết quả là in ra. Con trỏ hàm được sử dụng để truyền địa chỉ của các hàm khác nhau tại các thời điểm khác nhau, do đó làm cho hàm trở nên linh hoạt và trừu tượng hơn. Vì vậy, con trỏ hàm có thể được sử dụng để đơn giản hóa mã bằng cách cung cấp một cách đơn giản để chọn một hàm để thực thi dựa trên các giá trị thời gian chạy.

Giải thích hàm big ()

Chương trình chuyển hai số nguyên bằng cách tham chiếu đến hàm big () để so sánh hai giá trị nguyên được truyền cho nó và trả về địa chỉ bộ nhớ của giá trị lớn hơn. Giá trị trả về của big () là kiểu số nguyên có thể là giá trị khác 0 cũng như không.

Ví dụ

Đầu vào - 7 13

Đầu ra - Giá trị lớn hơn là 13

Đầu vào −8 6

Đầu ra - Giá trị lớn hơn là 8

Giải thích - chúng tôi có hai giá trị số nguyên và sau khi so sánh, con trỏ sẽ trả về địa chỉ bộ nhớ có giá trị lớn nhất trong số hai giá trị đó.

Phương pháp tiếp cận có thể được tuân theo

  • Giả sử lấy con trỏ số nguyên, int * c.
  • Sau đó, khởi tạo hai biến số nguyên.
  • Sau đó, chúng tôi sẽ nhập hai giá trị.
  • So sánh hai giá trị đã cho.
  • Tại con trỏ cuối cùng * c trả về địa chỉ có giá trị lớn hơn.

Thuật toán

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

Ví dụ

#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);
}

Đầu ra

Nếu chúng ta chạy chương trình trên thì nó sẽ tạo ra kết quả sau

The bigger value is 7
The bigger value is 5