ساختار و تابع

ساختار و تابع در برنامه نویسی C

در این آموزش به کمک مثال با نحوه ارسال متغیر ساختار به عنوان آرگومان به تابع و همچنین بازگشت ساختار از تابع در برنامه نویسی C آشنا خواهید شد.

مشابه متغیرهای داخلی می توانید متغیرهای ساختار را نیز به یک تابع ارسال کنید.

 


برنامه نویسی شبکه معماری کامپیوتر هوش مصنوعی و تجاری

توی این پک فوق العاده، صفرتاصد مبانی برنامه نویسی رو جوری یاد میگیری که تو هیچ کلاس آموزشی یا پک دیگه ای نه دیدی نه شنیدی! بدون هیچ کلاسی، با صفرتاصد مبانی برنامه نویسی اپلیکیشن بزن، پروژه محور یاد بگیر و حسابی پول در بیار! 


 

ارسال ساختار به تابع

توصیه می کنیم قبل از یادگیری شیوه ارسال ساختار به تابع، آموزش های زیر را مرور کنید.

  • ساختارها در برنامه نویسی C
  • تابع در برنامه نویسی C
  • تابع تعریف شده توسط کاربر در C

ارسال ساختارها به تابع:

#include <stdio.h>

struct student {

char name[50];

int age;

};

// نمونه اولیه تابع

void display(struct student s);

int main() {

struct student s1;

printf(“Enter name: “);

// خواندن رشته ورودی از کاربر تا زمانیکه کاربر اینتر بزند

// کاراکتر اینتر است \n

scanf(“%[^\n]%*c”, s1.name);

printf(“Enter age: “);

scanf(“%d”, &s1.age);

display(s1); // ارسال ساختار به عنوان آرگومان

return 0;

}

void display(struct student s) {

printf(“\nDisplaying information\n”);

printf(“Name: %s”, s.name);

printf(“\nAge: %d”, s.age);

}

خروجی

Enter name: Bond

Enter age: 13

Displaying information

Name: Bond

Age: 13

در اینجا، متغیر ساختار s1 از نوع struct student تعریف شده است. متغیر با دستور ;(display(s1 به تابع ()display ارسال میشود.

بازگشت ساختار از تابع

در برنامه زیر نحوه بازگشت ساختار از تابع نوشته شده است:

#include <stdio.h>

struct student

{

char name[50];

int age;

};

// نمونه اولیه تابع

struct student getInformation();

int main()

{

struct student s;

s = getInformation();

printf(“\nDisplaying information\n”);

printf(“Name: %s”, s.name);

printf(“\nRoll: %d”, s.age);

return 0;

}

struct student getInformation()

{

struct student s1;

printf(“Enter name: “);

scanf (“%[^\n]%*c”, s1.name);

printf(“Enter age: “);

scanf(“%d”, &s1.age);

return s1;

}

در اینجا، تابع ()getInformation با دستور ;()s = getInformation فراخوانی می شود. این تابع ساختاری از نوع struct student برمی گرداند. ساختار برگشتی از ابن تابع در تابع ()main نمایش داده می شود.

توجه داشته باشید که نوع متغیری هم که مقدار بازگشتی تابع در آن ذخیره می شود باید از نوع struct student است.

ارسال ساختار با ارجاع

علاوه بر این با استفاده از ارجاع نیز می توانید ساختار را به تابع ارسال کنید (مشابه با ارسال متغیرها از نوع داخلی). پیشنهاد میکنیم آموزش ارسال با ارجاع را مطالعه کنید.

در ارسال با ارجاع، آدرس متغیر ساختار به تابع ارسال می شود.

#include <stdio.h>

typedef struct Complex

{

float real;

float imag;

} complex;

void addNumbers(complex c1, complex c2, complex *result);

int main()

{

complex c1, c2, result;

printf(“For first number,\n”);

printf(“Enter real part: “);

scanf(“%f”, &c1.real);

printf(“Enter imaginary part: “);

scanf(“%f”, &c1.imag);

printf(“For second number, \n”);

printf(“Enter real part: “);

scanf(“%f”, &c2.real);

printf(“Enter imaginary part: “);

scanf(“%f”, &c2.imag);

addNumbers(c1, c2, &result);

printf(“\nresult.real = %.1f\n”, result.real);

printf(“result.imag = %.1f”, result.imag);

return 0;

}

void addNumbers(complex c1, complex c2, complex *result)

{

result->real = c1.real + c2.real;

result->imag = c1.imag + c2.imag;

}

خروجی

For first number,

Enter real part: 1.1

Enter imaginary part: -2.4

For second number,

Enter real part: 3.4

Enter imaginary part: -3.2

result.real = 4.5

result.imag = -5.6

در این برنامه، سه متغیر ساختار c1 ، c2 و آدرس result به تابع ()addNumbers ارسال می شود. result با ارجاع ارسال می شود.

با تغییر متغیر result در داخل تابع، متغیر result در تابع ()main نیز متناسب با آن تغییر می کند.

تفاوت پک های حرفه ای ما با آموزشهای رایگان: بطور خلاصه از زمین تا آسمان! 1-پکها، جدیدترین نسخه نرم افزارها را آموزش می دهند با قابلیت های بسیار بیشتر. 2-پکها توسط متخصص آن نرم افزار، به صورت کاملا پروژه محور و با حل چالش هایی که در مسیر کار عملی و حرفه ای با آن روبرو می شوید تهیه شده اند و بعد از استفاده، کاملا برای بازار کار آماده اید! 3- متد این پکها کاملا کار شده و تا ماهها، در ذهن تان ماندگارند و یادگیری بسیار سریعتر و کاملتری خواهید داشت. آموزشهای رایگان فقط دستورات نرم افزارها را (آنهم ناقص) بیان می کنند و تازه برای ورود به بازار باید ماهها تجربه عملی هم کسب کنید !!

turned_in,

چرب زبان

با این اپلیکیشن ساده، هر زبانی رو فقط با 5 دقیقه در روز، توی 80 روز مثل بلبل حرف بزن! بهترین متد روز، تقویت حافظه، آموزش تصویری. یادگیری زبان کلید یادگیری هر مهارتی در قرن 21 !


حتما بخوانید!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست