Structure - 29 : Yapılar ile Öğrenci Bilgileri Tutma
Dizilerde aynı tipteki basit verileri gruplayabiliyoruz demiştik. Şimdi ise birbirinden farklı tiplerdeki veriler gruplayacağız. Sıkça kullanılan bir örnek olan öğrenci bilgileri üzerinden örnekleyelim. Bir öğrencinin adını, soy adını, numarasını ve not ortalamasını saklayacak bir yapı kuralım.
Bu şekilde bir yapı tanımladık ve bu yapıyı kullanarak bir değişken oluşturup bu değişkeni dolduracağız.
Burada dikkat edilirse bir ogrenci yapısından ogrenci1 değişkeni oluştururken önce struct diye belirtiyoruz. Bunu yapmayı tercih etmiyorsanız yapı tanımlanırken typedef anahtar kelimesini kullanabilirsiniz.
ogrenci1 bir struct olduğu için içeriğinden farklı değişkenleri tutuyor. Bu değişkenlere ulaşmak için struct.değişken şeklinde nokta işareti kullanıyoruz. Struct içinde struct tanımlamak da yine mümkün. Böyle olursa struct.struct.değişken şeklinde kullanabiliriz.
struct ogrenci
{
char ad[50];
char soyad[50];
int numara;
float not;
};
Bu şekilde bir yapı tanımladık ve bu yapıyı kullanarak bir değişken oluşturup bu değişkeni dolduracağız.
#include <stdio.h>
#include <string.h>
struct ogrenci
{
char ad[50];
char soyad[50];
int numara;
float not;
};
int main()
{
struct ogrenci ogrenci1;
strcpy(ogrenci1.ad, "ad1");
strcpy(ogrenci1.soyad, "soyad1");
ogrenci1.numara = 55;
ogrenci1.not = 3.5;
struct ogrenci ogrenci2;
strcpy(ogrenci2.ad, "ad2");
strcpy(ogrenci2.soyad, "soyad2");
ogrenci2.numara = 77;
ogrenci2.not = 1.2;
printf("Ogrenci 1 adi : %s \n",ogrenci1.ad);
printf("Ogrenci 1 soyadi : %s \n",ogrenci1.soyad);
printf("Ogrenci 1 numarasi : %d \n",ogrenci1.numara);
printf("Ogrenci 1 notu : %g \n\n",ogrenci1.not);
printf("Ogrenci 2 adi : %s \n",ogrenci2.ad);
printf("Ogrenci 2 soyadi : %s \n",ogrenci2.soyad);
printf("Ogrenci 2 numarasi : %d \n",ogrenci2.numara);
printf("Ogrenci 2 notu : %g \n",ogrenci2.not);
return 0;
}
Burada dikkat edilirse bir ogrenci yapısından ogrenci1 değişkeni oluştururken önce struct diye belirtiyoruz. Bunu yapmayı tercih etmiyorsanız yapı tanımlanırken typedef anahtar kelimesini kullanabilirsiniz.
#include <stdio.h>
#include <string.h>
typedef struct ogrenci
{
char ad[50];
char soyad[50];
int numara;
float not;
}ogrenci;
int main()
{
ogrenci ogrenci1;
strcpy(ogrenci1.ad, "ad1");
strcpy(ogrenci1.soyad, "soyad1");
ogrenci1.numara = 55;
ogrenci1.not = 3.5;
ogrenci ogrenci2;
strcpy(ogrenci2.ad, "ad2");
strcpy(ogrenci2.soyad, "soyad2");
ogrenci2.numara = 77;
ogrenci2.not = 1.2;
return 0;
}
ogrenci1 bir struct olduğu için içeriğinden farklı değişkenleri tutuyor. Bu değişkenlere ulaşmak için struct.değişken şeklinde nokta işareti kullanıyoruz. Struct içinde struct tanımlamak da yine mümkün. Böyle olursa struct.struct.değişken şeklinde kullanabiliriz.
Yorumlar
Yorum Gönder