خروجی تابع از نوع اشاره گر در زبان 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++ اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.