خروجی تابع از نوع اشاره گر در زبان C++ – آموزش زبان C++

۱۳۹۷-۰۹-۰۱
خروجی تابع از نوع اشاره گر در زبان C++ بازگشت دادن یک اشاره گر از یک تابع شبیه بازگشت دادن یک آرایه از یک تابع است. زیرا آرایه نیز اشاره گر ثابت است. برای این که یک تابع بتواند یک اشاره گر را به عنوان خروجی برگرداند باید به شکل زیر تعریف شود: int * myFunction() { . . } نکته مهمی که باید به آن ...

cpp return pointer from functions 4421 خروجی تابع از نوع اشاره گر در زبان C++   آموزش زبان C++

خروجی تابع از نوع اشاره گر در زبان C++

بازگشت دادن یک اشاره گر از یک تابع شبیه بازگشت دادن یک آرایه از یک تابع است. زیرا آرایه نیز اشاره گر ثابت است. برای این که یک تابع بتواند یک اشاره گر را به عنوان خروجی برگرداند باید به شکل زیر تعریف شود:

int * myFunction() {
.
.
}

نکته مهمی که باید به آن توجه کنید این است که زبان C++ نمی تواند آدرس متغیری که در بلوک خودش است (یعنی به عنوان متغیر محلی آن تابع است) را به خارج از تابع بفرستد. بنابراین اشاره گری که قرار است بازگشت داده شود باید به صورت static تعریف شود.

تابع زیر را در نظر بگیرید که ۱۰ عدد تصادفی تولید می کند و آن ها را در قالب یک آرایه باز می گرداند.

#include <iostream>
#include <ctime>
using namespace std;
// function to generate and retrun random numbers.
int * getRandom( ) {
   static int  r[10];
   // set the seed
   srand( (unsigned)time( NULL ) );
   for (int i = 0; i < 10; ++i) {
      r[i] = rand();
      cout << r[i] << endl;
   }
   return r;
}
// main function to call above defined function.
int main () {
   // a pointer to an int.
   int *p;
   p = getRandom();
   for ( int i = 0; i < 10; i++ ) {
      cout << "*(p + " << i << ") : ";
      cout << *(p + i) << endl;
   }
   return 0;
}

امتحان کنید

زمانی که کد بالا توسط کامپایلر زبان C++ اجرا شود، نتیجه زیر را تولید خواهد کرد:

624723190
1468735695
807113585
976495677
613357504
1377296355
1530315259
1778906708
1820354158
667126415
*(p + 0) : 624723190
*(p + 1) : 1468735695
*(p + 2) : 807113585
*(p + 3) : 976495677
*(p + 4) : 613357504
*(p + 5) : 1377296355
*(p + 6) : 1530315259
*(p + 7) : 1778906708
*(p + 8) : 1820354158
*(p + 9) : 667126415

نوشته خروجی تابع از نوع اشاره گر در زبان C++ – آموزش زبان C++ اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.