სხვაობა სტრუქტურასა და გაერთიანებას შორის C-ში

Სარჩევი:

სხვაობა სტრუქტურასა და გაერთიანებას შორის C-ში
სხვაობა სტრუქტურასა და გაერთიანებას შორის C-ში

ვიდეო: სხვაობა სტრუქტურასა და გაერთიანებას შორის C-ში

ვიდეო: სხვაობა სტრუქტურასა და გაერთიანებას შორის C-ში
ვიდეო: Structure vs union||Difference between structure and union in C||3 minutes master||Neverquit 2024, ივლისი
Anonim

ძირითადი განსხვავება - სტრუქტურა და კავშირის წინააღმდეგ C-ში

მაივი არის C ენით მხარდაჭერილი მონაცემების სტრუქტურა. მასივი შეიძლება გამოყენებულ იქნას იმავე ტიპის მონაცემთა ელემენტების შესანახად. თუ არსებობს განცხადება, როგორც int ნიშნები [10]; მაშინ ნიშნები არის მასივი, რომელსაც შეუძლია შეინახოს ათი ნიშანი და ყველა მათგანი მთელი რიცხვია. ზოგჯერ საჭიროა სხვადასხვა ტიპის მონაცემთა ელემენტების შენახვა იმავე მეხსიერების ადგილას. მაგალითად, თანამშრომელს შეიძლება ჰქონდეს თანამშრომლის ID, სახელი, განყოფილება, ასაკი და ა.შ. ისინი სხვადასხვა ტიპის მონაცემთა არიან. აქედან გამომდინარე, აუცილებელია გვქონდეს მეთოდი, რომ შეინახოს სხვადასხვა მონაცემთა ელემენტები ერთ ერთეულში. სტრუქტურები და გაერთიანებები C-ში გამოიყენება სხვადასხვა ტიპის მონაცემთა ელემენტების შესანახად მეხსიერების იმავე ადგილას.სტრუქტურა და კავშირი მსგავსია, მაგრამ ისინი ძირითადად განსხვავდებიან მეხსიერების განაწილების გამო. სტრუქტურული ცვლადის შესანახად საჭირო მეხსიერება არის ყველა წევრის მეხსიერების ზომის ჯამი. კავშირის ცვლადის შესანახად საჭირო მეხსიერება არის კავშირის უდიდესი ელემენტისთვის საჭირო მეხსიერება. ეს არის მთავარი განსხვავება სტრუქტურასა და გაერთიანებას შორის C-ში. ეს სტატია განიხილავს განსხვავებას სტრუქტურასა და გაერთიანებას შორის C-ში.

რა არის სტრუქტურა C-ში?

სტრუქტურა არის მომხმარებლის მიერ განსაზღვრული მონაცემთა ტიპი C-ში. ის ეხმარება სხვადასხვა ტიპის მონაცემთა ერთეულების გაერთიანებას. სტრუქტურას შეუძლია წარმოადგინოს ჩანაწერები. სტუდენტს შეიძლება ჰქონდეს student_id, student_name და ა.შ. თითოეული ცვლადის ცალკე შენახვის ნაცვლად, ყველა ეს განსხვავებული მონაცემთა ელემენტი შეიძლება იყოს კომპაქტური ერთ ერთეულში სტრუქტურის გამოყენებით. იგი განისაზღვრება საკვანძო სიტყვის "struct" გამოყენებით. სტრუქტურაში, მის ყველა წევრზე წვდომა შესაძლებელია ნებისმიერ დროს. შემდეგი ქმნის მიღებული მონაცემთა ტიპის სტრუქტურას Student.

სტრუქტურა სტუდენტი {

instudent_id;

მოსწავლის_სახელი[20];

};

ზემოხსენებული სტრუქტურისთვის, ცვლადები შეიძლება გამოცხადდეს შემდეგნაირად.

სტრუქტურა სტუდენტი სტუდენტი1, სტუდენტი2, სტუდენტი3;

სტრუქტურის წევრებზე წვდომის ორი მეთოდი არსებობს. ეს არის წევრი ოპერატორის (.) და სტრუქტურის მაჩვენებლის ოპერატორის (->) გამოყენებით. წევრებზე წვდომა შესაძლებელია structure_variable_name-ის გამოყენებით. წევრის სახელი. თუ პროგრამისტს სურს წვდომა მოსწავლის სახელზე 2, მაშინ მას შეუძლია დაწეროს განცხადება printf(student2.student_namename);

იხილეთ ქვემოთ მოცემული პროგრამა სტრუქტურით.

განსხვავება სტრუქტურასა და გაერთიანებას შორის C-ში
განსხვავება სტრუქტურასა და გაერთიანებას შორის C-ში

სურათი 01: C პროგრამა სტრუქტურებით

ზემოხსენებული პროგრამის მიხედვით, სტუდენტი არის სტრუქტურა.ის შეიცავს student_id და student_name. მთავარ პროგრამაში დეკლარირებულია სტრუქტურის ტიპის ორი ცვლადი. მათ უწოდებენ student1 და student2. student1-ის ID-ს ენიჭება მნიშვნელობა 1 წევრი ოპერატორის გამოყენებით student1.student_id=1. სახელი "Ann" არის სტრიქონი. ამიტომ, ის კოპირდება student_name წევრზე strcpy ფუნქციის გამოყენებით. ID და სახელი ენიჭება student2-ს ანალოგიურად. საბოლოოდ, ეს მნიშვნელობები იბეჭდება წევრი ოპერატორის გამოყენებით.

მეხსიერების რაოდენობა, რომელიც საჭიროა სტრუქტურული ცვლადის შესანახად, არის ყველა წევრის მეხსიერების ზომის ჯამი. student_id შეიცავს 4 ბაიტს და student_name შეიცავს 20 ბაიტს (თითო ბაიტი სიმბოლოსთვის). სულ 24 ბაიტი არის სტრუქტურისთვის საჭირო მეხსიერების ზომის ჯამი.

რა არის კავშირი C-ში?

კავშირი არის მომხმარებლის მიერ განსაზღვრული მონაცემთა ტიპი C-ში. ის ეხმარება სხვადასხვა ტიპის მონაცემთა შენახვას მეხსიერების იმავე ადგილას. წიგნს შეიძლება ჰქონდეს ისეთი თვისებები, როგორიცაა book_name, price და ა.შ. თითოეული მათგანისთვის ცვლადების შექმნის ნაცვლად, გაერთიანება შეიძლება გამოყენებულ იქნას ყველა სხვადასხვა ტიპის მონაცემთა ერთ ერთეულში შეკუმშვის მიზნით, კავშირის გამოყენებით.ის განსაზღვრულია საკვანძო სიტყვის "კავშირის" გამოყენებით. შემდეგი ქმნის მიღებული მონაცემების კავშირის წიგნს.

unionBook{

char სახელი[20];

ორმაგი ფასი;

};

ზემოხსენებული გაერთიანებისთვის, ცვლადები შეიძლება გამოცხადდეს შემდეგნაირად.

union Book book1, book2;

კავშირის წევრებთან წვდომის ორი მეთოდი არსებობს. ეს არის წევრი ოპერატორის (.) და სტრუქტურის მაჩვენებლის ოპერატორის (->) გამოყენებით. წევრებზე წვდომა შესაძლებელია union_variable_name-ის გამოყენებით. წევრის სახელი. თუ პროგრამისტს სურს წვდომა წიგნის სახელზე, მაშინ მას შეუძლია დაწეროს განცხადება printf(book1.name);

მიმართეთ ქვემოთ მოცემულ პროგრამას გაერთიანებით.

განსხვავება სტრუქტურასა და გაერთიანებას შორის C_სურათ 02-ში
განსხვავება სტრუქტურასა და გაერთიანებას შორის C_სურათ 02-ში

სურათი 02: C პროგრამა კავშირის გამოყენებით

ზემოხსენებული პროგრამის მიხედვით, წიგნი არის გაერთიანება. Book1 არის კავშირის ტიპის ცვლადი. სახელსა და ფასს ენიჭება მნიშვნელობები. გაერთიანებაში, მისი მხოლოდ ერთ წევრზე წვდომა შეიძლება ერთდროულად და ყველა სხვა წევრს ექნება ნაგვის მნიშვნელობები. id-ის მნიშვნელობა არ იბეჭდება სწორად, მაგრამ ფასის მნიშვნელობა სწორად იბეჭდება.

ძირითადი განსხვავება სტრუქტურასა და გაერთიანებას შორის C-ში
ძირითადი განსხვავება სტრუქტურასა და გაერთიანებას შორის C-ში

სურათი 03: შეცვლილი C პროგრამა კავშირით

ზემოხსენებული პროგრამის მიხედვით, Book არის გაერთიანება. book1 და book2 არის კავშირის ტიპის ცვლადები. პირველ რიგში, ენიჭება წიგნი1 სახელის მნიშვნელობა და ის იბეჭდება. შემდეგ ენიჭება წიგნი2 სახელის მნიშვნელობა და ის იბეჭდება. ყველა წევრი სწორად იბეჭდება, რადგან ერთი წევრი ერთდროულად გამოიყენება. კავშირის შესანახად საჭირო მეხსიერება არის კავშირის უდიდესი ელემენტისთვის საჭირო მეხსიერება.ზემოთ მოცემულ პროგრამაში სახელის ცვლადი არის 20 ბაიტი. ფასზე დიდია. ასე რომ, მეხსიერების განაწილება კავშირისთვის არის 20 ბაიტი.

რა მსგავსებაა სტრუქტურასა და გაერთიანებას შორის C-ში?

  • სტრუქტურა და კავშირი C-ში მომხმარებლის მიერ განსაზღვრული მონაცემთა ტიპებია.
  • ორივე სტრუქტურა და კავშირი C-ში შეიძლება გამოყენებულ იქნას სხვადასხვა ტიპის მონაცემთა შესანახად მეხსიერების იმავე ადგილას.

რა განსხვავებაა სტრუქტურასა და გაერთიანებას შორის C-ში?

სტრუქტურა გაერთიანების წინააღმდეგ C-ში

სტრუქტურა არის მომხმარებლის მიერ განსაზღვრული მონაცემთა ტიპი C ენაზე, რომელიც იძლევა სხვადასხვა ტიპის მონაცემების ერთად გაერთიანების საშუალებას. Union არის მომხმარებლის მიერ განსაზღვრული მონაცემთა ტიპი C ენაზე, რომელიც იძლევა სხვადასხვა ტიპის მონაცემების ერთად გაერთიანების საშუალებას.
ხელმისაწვდომობა
სტრუქტურაში მის ყველა წევრზე წვდომა შესაძლებელია ნებისმიერ დროს. კავშირში მისი მხოლოდ ერთ წევრზე წვდომა შეიძლება ერთდროულად და ყველა სხვა წევრი შეიცავს ნაგვის მნიშვნელობებს.
მეხსიერების განაწილება
სტრუქტურული ცვლადის შესანახად საჭირო მეხსიერება არის ყველა წევრის მეხსიერების ზომის ჯამი. კავშირის ცვლადის შესანახად საჭირო მეხსიერება არის კავშირის უდიდესი ელემენტისთვის საჭირო მეხსიერება.
საკვანძო სიტყვა
საკვანძო სიტყვა, რომელიც გამოიყენება სტრუქტურის განსასაზღვრად არის "struct". საკვანძო სიტყვა, რომელიც გამოიყენება კავშირის განსასაზღვრად არის "კავშირი".

რეზიუმე – სტრუქტურა vs კავშირი C-ში

მაივი გამოიყენება იმავე ტიპის მონაცემთა ელემენტების შესანახად.ზოგჯერ საჭიროა სხვადასხვა ტიპის მონაცემთა ელემენტების შენახვა იმავე მეხსიერების ადგილას. C პროგრამირების ენა უზრუნველყოფს სტრუქტურას და გაერთიანებას ამ ამოცანის შესასრულებლად. ორივე არის მომხმარებლის მიერ განსაზღვრული მონაცემთა ტიპები. სტრუქტურული ცვლადის შესანახად საჭირო მეხსიერება არის ყველა წევრის მეხსიერების ზომის ჯამი. კავშირის ცვლადის შესანახად საჭირო მეხსიერება არის კავშირის უდიდესი ელემენტისთვის საჭირო მეხსიერება. ეს არის განსხვავება სტრუქტურასა და გაერთიანებას შორის C.-ში

გირჩევთ: