ارسال اشاره گر به تابع در زبان C
در زبان برنامه نویسی C می توانید یک اشاره گر به عنوان آرگومان به یک تابع بفرستید، برای این کار فقط کافیست پارامتر تابع را از نوع اشاره گر تعریف کنید. در مثال زیر ما یک اشاره گر از نوع unsigned long به تابع ارسال می کنیم سپس مقدار آن را درون تابع تغییر می دهیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include <stdio.h> #include <time.h> void getSeconds(unsigned long *par); int main () { unsigned long sec; getSeconds( &sec ); /* print the actual value */ printf("Number of seconds: %ld\n", sec ); return 0; } void getSeconds(unsigned long *par) { /* get the current number of seconds */ *par = time( NULL ); return; } |
زمانی که کد بالا توسط کامپایلر C و اجرا شود، نتیجه زیر را تولید خواهد کرد:
1 | Number of seconds :1294450468 |
مثال زیر هم می تواند یک اشاره گر و هم یک آرایه را به عنوان پارامتر قبول کند:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <stdio.h> /* function declaration */ double getAverage(int *arr, int size); int main () { /* an int array with 5 elements */ int balance[5] = {1000, 2, 3, 17, 50}; double avg; /* pass pointer to the array as an argument */ avg = getAverage( balance, 5 ) ; /* output the returned value */ printf("Average value is: %f\n", avg ); return 0; } double getAverage(int *arr, int size) { int i, sum = 0; double avg; for (i = 0; i < size; ++i) { sum += arr[i]; } avg = (double)sum / size; return avg; } |
زمانی که کد بالا توسط کامپایلر و اجرا شود نتیجه زیر را تولید خواهد کرد:
1 | Average value is: 214.40000 |
عالی بود. در هیچ سایتی توضیح اینقدر واضح نبود.
سلام خسته نباشید حالا که شما دارید رایگان اموزش میدید لطفا مثال ها وتمرین های بیشتری بزارید برای هر مبحث که یادگیری بهتر انجام بشه باتشکر از سایت خوبتون.