خروجی تابع از نوع آرایه در زبان C
در زبان برنامه نویسی C به منظور بازگشت دادن یک آرایه از یک تابع باید نوع خروجی آن تابع از نوع اشاره گر باشد. برای این که بتوانید یک آرایه را به عنوان خروجی یک تابع بازگشت دهید، باید آن را به این صورت تعریف کنید:
int * myFunction() { . . . }
نکته مهمی که باید به آن توجه کنید این است که زبان C نمی تواند آدرس متغیری که در بلوک خودش است (یعنی به عنوان متغیر محلی آن تابع است) را به خارج از تابع بفرستد. بنابراین آرایه ایی که قرار است بازگشت داده شود باید به صورت static تعریف شود.
در حال حاضر، تابع زیر را در نظر بگیرید که ۱۰ عدد تصادفی تولید می کند و آن ها را در قالب یک آرایه باز می گرداند.
#include <stdio.h> /* function to generate and return random numbers */ int * getRandom( ) { static int r[10]; int i; /* set the seed */ srand( (unsigned)time( NULL ) ); for ( i = 0; i < 10; ++i) { r[i] = rand(); printf( "r[%d] = %d\n", i, r[i]); } return r; } /* main function to call above defined function */ int main () { /* a pointer to an int */ int *p; int i; p = getRandom(); for ( i = 0; i < 10; i++ ) { printf( "*(p + %d) : %d\n", i, *(p + i)); } return 0; }
امتحان کنید
زمانی که کد بالا توسط کامپایلر C و اجرا شود، نتیجه زیر را تولید خواهد کرد:
r[0] = 313959809 r[1] = 1759055877 r[2] = 1113101911 r[3] = 2133832223 r[4] = 2073354073 r[5] = 167288147 r[6] = 1827471542 r[7] = 834791014 r[8] = 1901409888 r[9] = 1990469526 *(p + 0) : 313959809 *(p + 1) : 1759055877 *(p + 2) : 1113101911 *(p + 3) : 2133832223 *(p + 4) : 2073354073 *(p + 5) : 167288147 *(p + 6) : 1827471542 *(p + 7) : 834791014 *(p + 8) : 1901409888 *(p + 9) : 1990469526
نوشته خروجی تابع از نوع آرایه در زبان C – آموزش زبان C اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.