C پروقراملاما دیلیندهکی آیری موتغیر، ایستراکچردیر.
ایستراکچرین دوغرودان نه اولدوغو، موجود موتغیرلرین واحید شکیلده بیرلشمیشلریسیدیر. ایستراکچر موتغیرین، سادهجه دیتابیسدهکی رکوردلار تکین چوخلو بؤلوملری وار و نئجه بیر ایستراکچری یاراتماق، تنظیم و ایچیندهکی بؤلوملره أل تاپماغی توضیح وئرهجهییک. نئجه بیر ایستراکچر ایچینه ایطیلاعات دولدورماغی و حتی بیر ایستراکچری باشقا بیر ایستراکچرین ایچریسینه یئرلشدیرمگین ماراقلی آیدییاسینی (idea) دا صؤحبت ائدهجهییک. آشاغیداکی میثال کامل بیر کود اولماسا دا، نئجه C دیلینده ایستراکچرین یارانماسینی گؤستریر.
#include <stdio.h>
int main()
{
struct record {
int account;
float balance;
};
//some codes wil be placed here!
return(0);
}
گؤردویونوز تکین، struct آچار-سؤزونون دالیسیجا ایستراکچرین آدی (record) یازیلیب.
ایستراکچرین عوضولاری دا ایکی آکولاد آراسیندا یازیلیبلار و آکولاد باغلاناندان سونرا دا سمی-کلون ایله تعریف ائتمهسینی قورتارمیشیق. ایستراکچرلنمیش تعریف ایله صیرفا ایستراکچر اوچون نوع یارانیر، بئلهلیکله یئنی بیر موتغیر تکین ایستراکچری ایستیفاده ائتمک اوچون، اونون نه نوعدان اولدوغو موتغیرلری تعیین ائتمهلیسینیز. سونرا ۸-جی سطردی دگیشهجهییک:
#include <stdio.h>
int main()
{
struct record {
int account;
float balance;
};
struct record my_bank;
return(0);
}
ایندی record نوعلو ایستراکچر اوچون، my_bank تکین یئنی بیر موتغیر اعلام ائتمیشیک.
نوکته: موضوعون داها آیدین گؤرونمگی اوچون، دگیشمهلری آتدیم-آتدیم مطرح ائدیریک.
ایستراکچرین عوضولاری اوچون أل تاپماغا، عضو و موتغیرین آدینا رفرنس وئرمهلیسینیز.
بونو ائتمک اوچون گلین ایکی آیری سطر ده پروقراما آرتیراق.
ایستراکچر اوچون موتغیرین آدی اؤنجه گلیر و سونرا نوقطه و دالیسیجا دا عضو آدی گلیر.
اونلارین دا ایختیصاص وئریلدیکلری میقدارلار، نه نوعدان اولدوقلاری ایله بیر اولمالیدیرلار.
یعنی 12 صحیح عددی، اینتیجر و صحیح بیر نوع اوچون ایختیصاص وئریلمهلیدیر.
آشاغیداکی پروقرامدا بونو داها آیدین باشا دوٚشهجکسینیز:
#include <stdio.h>
int main()
{
struct record {
int account;
float balance;
};
struct record my_bank;
my_bank.account = 123456;
my_bank.balance = 6543.21;
return(0);
}
۹-جو سطردهکی دستورالعمله باخسانیز، اینتیجر بیر میقدار، my_bank آدیندا موتغیره ایختیصاص وئریلیب و بو ایختیصاص ایسه، ایستراکچردهکی account عضو اوچون رفرنس وئریلیب.
بو دئدیگیمیز آدلاری، ایستراکچرین اؤز آدی (record) ایله سهو سالمایین.
ایندی بیر آیری موتغیر آرتیراجاییق و موتغیرلر اوچون ایختیصاص تاپان میقدارلاری بوراخیص صفحهیه چاپ اولماق اوچون ارسال ائدهجهییک.
ایندی سونراکی میثالا باخین:
#include <stdio.h>
int main()
{
struct record {
int account;
float balance;
};
struct record my_bank;
struct record your_bank;
my_bank.account = 123456;
my_bank.balance = 6543.21;
printf("In account %d I have %.2f\n",
my_bank.account,my_bank.balance);
return(0);
}
Output Terminal
In account 123456 I have 6543.21
Process returned 0 (0x0) execution time : 0.016 s
Press any key to continue.
ایندی your_bank موتغیری میقدارلاندیرماق اوچون بو پروقرامی بیراز دگیشیریک و سونرا گلنکی بحثی مطرح ائدیریک.
#include <stdio.h>
int main()
{
struct record {
int account;
float balance;
};
struct record my_bank;
struct record your_bank;
my_bank.account = 123456;
my_bank.balance = 6543.21;
your_bank.account = 31;
your_bank.balance = 7631975.43;
printf("In account %d I have %.2f\n",
my_bank.account,my_bank.balance);
printf("In account %d I have %.2f\n",
your_bank.account,your_bank.balance);
return(0);
}
کامپایل و ایجرا ائدهرک نتیجهیه باخین.
Output Terminal
In account 123456 I have 6543.21
In account 31 I have 7631975.50
Process returned 0 (0x0) execution time : 0.094 s
Press any key to continue.
ایستراکچرین ایچینه ایطیلاعات دا وئره بیلرسینیز.
آشاغیداکی کودا باخسانیز، ائله بونو ایمتیحان ائتمیشیک.
#include <stdio.h>
int main()
{
struct person {
char name[32];
int age;
};
struct person shaer = {
"Emadoddin Nasimi",
51
};
printf("%s was %d years old\n",shaer.name,shaer.age);
return(0);
}
۴-جو سطرده person آدیندا بیر ایستراکچر جورلنیب و آردیجا دا name[32] و age موتغیرلری تعریف اولوبدور.
۸-جی سطرده shaer تکین موتغیر بو ایستراکچر اوچون تعریف اولوبدور و موتناظیر مؤلفیهلری اوچون ده میقدارلاری اؤنجه "Emadoddin Nasimi" ایسترینگی و سونرا دا 51 اینتیجر عدد ایختیصاص وئریلیبدیر.
البته بورادا یئیین انساب تکین بیر ایش اولوبدور و قاباقکی پروقرام ایله بیراز فرقلیدیر.
۱۲-جی سطردهکی printf فانکشنی ایله موتناظیر موتغیرلر اوچون تعیین اولان میقدارلار چاپ اولوبلار.
نوکته: struct آچار-سؤز'دن سونراکی کلمه، ایستراکچرین نوع آدیدیر و سونراکی آدلار ایله فرقلیدیر.
قاباقکی پروقرامی داها آیدین ائتمک اوچون، اونو بیر داها یازمیشیق.
#include <stdio.h>
int main()
{
struct person {
char name[32];
int age;
};
struct person shaer;
shaer.name = "Emadoddin Nasimi";
shaer.age = 51;
printf("%s was %d years old\n",shaer.name,shaer.age);
return(0);
}
کامپایل ائدرکن، ایراد گؤرهجکسینیز. ایسترینگلر دوٚزن ساییلیرلار، موتغیر یوخ. بونا گؤره ده موتغیر اولمادیغینا گؤره، اونو موتغیر اوچون ایختیصاص وئره بیلمهسینیز.
آشاغیدا آیری یول ایله بو چتینلیگی آرادان قالدیراجاییق.
#include <stdio.h>
#include <string.h>
int main()
{
struct person {
char name[32];
int age;
};
struct person shaer;
strcpy(shaer.name,"Emadoddin Nasimi");
shaer.age = 51;
printf("%s was %d years old\n",shaer.name,shaer.age);
return(0);
}
C پروقراملاما دیلیندهکی بوتون موتغیر نوعلاریندان، ایستراکچرین ایچینه گئچیره بیلرسینیز، حتی آیری بیر ایستراکچری ده باشقاسینین ایچینه گئچیره بیلرسینیز.
آشاغیداکی کودا باخین.
#include <stdio.h>
#include <string.h>
int main()
{
struct date {
int year;
int month;
int day;
};
struct person {
char name[32];
struct date birthday;
};
struct person friend;
strcpy(friend.name,"Anita Mann");
friend.birthday.year = 1975;
friend.birthday.month = 6;
friend.birthday.day = 1;
printf("My friend %s was born on %d/%d/%d\n",
friend.name,
friend.birthday.month,
friend.birthday.day,
friend.birthday.year);
return(0);
}
۵-جی سطرده date آدی ایله ایستراکچر تعریف اولوب کی year و month و day تکین اینتیجر موتغیرلری وار. سونرا ۱۰-جو سطرده person آدیندا یئنی ایستراکچر تعریف اولوبدور کی name تکین کاراکتر دوٚزنی (ایسترینگ) و birthday تکین بیر موتغیری وار کی date ایستراکچرینه رفرنس وئریلیبدیر. ۱۴-جو سطرده person آدی ایله ایستراکچری اوچون friend متغییری تعیین اولاراق، دالیسیجا ۴ ساییدا دستورالعمل ایله میقدار ایختیصاص وئریلیبدیر.
۱۵-جی سطردهکی ایسترینگ فانکشنه باخمایاراق، قالانکی دستورالعمللرده موتغیر اوچون میقدار وئرمک مقصدیله، رفرنسلردن سونرا نوقطه یازیلیبدیر.
۱۶-جی سطرده یازیلان friend.birthday.year = 1975; دستورالعملی، اؤنجه friend ایله باشلاییر، سونرا نوقطه و اونون birthday رفرنسی و سونرا گئنه ده نوقطه و year یازیلیب.
گؤردویونوز تکین ایستراکچرلرین موتغیرلری، سوْن موتغیردن اؤن موتغیره دوغرو ترتیب ایله رفرنس وئریلیبلر. ۱۹-جو سطر ده اوزون اولماسینا گؤره، ۴ سطر یئر توتوبدور و حتی IDE موحیطینده ده سطرلری آییرسانیز دا بیر ایراد یارانماز.
البته پروقرامچیلارین چوخلاری ایچ-ایچه ایستراکچرلری یاپیشیقلی یازارلار.
آشاغیداکی پروقرامدا بو مسئلهیی گؤرونتویه چکمیشیک.
#include <stdio.h>
#include <string.h>
int main()
{
struct date {
int year;
int month;
int day;
};
struct person {
char name[32];
struct date birthday;
} friend;
strcpy(friend.name,"Anita Mann");
friend.birthday.year = 1975;
friend.birthday.month = 6;
friend.birthday.day = 1;
printf("My friend %s was born on %d/%d/%d\n",
friend.name,
friend.birthday.month,
friend.birthday.day,
friend.birthday.year);
return(0);
}
قاباقکی ایستراکچر اوچون سمی-کلون یئرینه friend موتغیری اوتوروب.
Output Terminal
My friend Anita Mann was born on 6/1/1975
Process returned 0 (0x0) execution time : 0.003 s
Press ENTER to continue.