Archive for struct

Bu gün pointer’ ın struct ile kullanımından bahsedeceğim ve bir de örnekle açıklamaya çalışacağım.  Daha önce de bahsettiğim gibi pointer, değişkenlerin adres bilgilerini tutan işaretçlerdir. Bir pointerın içeriğine ulaşmak için “*” işareti kullanılır. Pointerlar adres bilgisi üzerinden işlem yaptıkları için referans tipinde değişkenlerdir. Pointerları da kısaca hatırlattıktan sonra struct ile pointer kullanımını daha iyi anlamak için örnek programa bakalım.

 

#include
struct ogrenci
{
char ad[20];
int vize;
int final;
};
void main()
{
struct ogrenci ogr1,*ogr2;
//scanf(“%s”,ogr1.ad);
ogr1.vize=90;
ogr1.final=80;
printf(“%d %dn”,ogr1.vize,ogr1.final);
ogr2=&ogr1;
ogr2->vize=35;//-> işareti pointer ın içeriğini ifade eder
ogr2->final=40;
printf(“%d %dn”,ogr1.vize,ogr1.final);
}

 

Yine struct içinde öğrenciye ait ad, vize ve final notlarını tanımladım. Main fonksiyonu içinde “struct ogrenci” yapısından ogr1 ve pointer türündeki *ogr2 değişkenlerini türettim. ogr1 değişkenine bilgileri atadıktan sonra read more »

Dün C dilinde struct yapısını örneklerle anlattım. Bu gün de struct ile fonksiyon kullanımını anlatacağım. Bu yazıda, struct içinde tanımlanan değişkenler nasıl fonksiyona gönderilir, fonksiyon içinde bu değişkenler nasıl kullanılır, gibi soruların cevabını bulabileceksiniz. Bu konuyu açıklamak için tarih bilgilerini ekrana yazdıran bir örnek hazırladım. Önce örnek programı verip ardından gerekli açıklamalarda bulunacağım.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include
//Tarih struct'ı
struct tarih
{
    int gun;
    int ay;
    int yil;
};
//yaz fonksiyonunun prototipi
void yaz(struct tarih);

void main()
{
    struct tarih trh;
    trh.gun=8;
    trh.ay=1;
    trh.yil=2010;
    yaz(trh);
    printf("%dn",trh.yil);
}

void yaz(struct tarih trh)
{
    printf("%d.%d.%dn",trh.gun,trh.ay,trh.yil);
    trh.yil=2011;
}

Bu örnekte de tarih adında bir struct tanımladım. Tarihe ait olan gün, ay, yıl gibi değişkenleri de read more »

Aralarında mantıksal bir ilişki bulunan farklı türden veriler “struct” lar içerisinde bir bütün olarak tanımlanabilirler. Bir örnek verecek olursak: Öğrencilere ait ad, soyad, vize notu, final notu gibi değişkenleri her öğrenci için ayrı ayrı tanımlaycağımızı düşünürsek iş, içinden çıkılmaz bir hal alır. C dilinde struct anahtar kelimesi ile programcılar kendi değişken tiplerini oluşturabilirler. Bunun için de struct vardır  “Struct” lar diziler gibi bellekte sürekli kalırlar fakat dizilerin aksine değer tipindedirler ve

struct yapı-adı
{
tip adı değişken adı;
tip adı değişken adı;
};

şeklinde tanımlanırlar.Struct kullanarak öğrenci bilgilerini tutan örnek bir program yazalım.

 

#include
struct kayit
{
char ad[20];
int vize;
int final;
float ort;
};
void main()
{
struct kayit ogr;
printf(“ogrencinin adi:”);
gets(ogr.ad);
printf(“ogr vize-final gir :”);
scanf(“%d%d”,&ogr.vize;,&ogr.final;);
ogr.ort=ogr.vize*0.6+ogr.final*0.4;
printf(“ogr adi: %sn”,ogr.ad);
printf(“ogr vize: %d    final:%dn”,ogr.vize,ogr.final);
printf(“ogr ort: %fn”,ogr.ort);
}

Gördüğünüz gibi programda struct yapısı içinde read more »