Professional Documents
Culture Documents
Temel veri yapılarının birleştirilmesi ile oluşturulmuş tanımlamalı bir veri yapısıdır.
Yapı ismi
struct ogrenci
{
int no; ogrenci yapısının büyüklüğü :
char ad[20]; Yapı üyeleri
int not;
}; 4(int)*1 + 1(char)*20 + 4(int)*1 = 28 byte
1
#include <stdio.h> //DEVAMI
int main()
struct mesafe //yapı tanımlaması {
{ oda salon; //değişken tanımlaması
int metre; salon.en.metre=6;
float cm; salon.en.cm=20;
}; salon.boy.metre=5;
salon.boy.cm=27;
struct oda //yapı tanımlaması
{ float u=salon.en.metre + salon.en.cm/100;
mesafe en; float g=salon.boy.metre + salon.boy.cm/100;
mesafe boy;
}; printf(" Salon Alanı ..: %f metre kare dir.", u*g);
return 0;
}
2
• İşaretçiler, bellekteki belli bir adresi tutan değişkenlerdir.
• Adres, bellekteki bir verinin yerini gösterir.
• İşaretçi kullanmak performans artışı sağlar.
3
/* İşaretçi kullanımı */
#include<stdio.h>
int main()
{
int a=10;
int *p;
p=&a;
return 0;
}
/* İşaretçi kullanımı */
#include<stdio.h>
int main( )
{
int *p;
int x=555;
p=&x;
return 0;
}
4
/* İşaretçi kullanımı */ // Devamı
#include<stdio.h>
Px++;
int main( ) Py++;
{ Pz--;
int x=1, *Px; printf("Yeni adresler: %p, %p, %p dir\n", Px,Py,Pz);
float y=2.88,*Py; return 0;
short z=3, *Pz; }
Px=&x;
Py=&y;
Pz=&z;
printf("İlk adresler: %p, %p, %p \n",Px,Py,Pz);
int main( )
{
int dizi[5]={1,2,3,4,5};
for(int i=0;i<5;i++)
printf("%d \n", *(dizi+i) );
for(int i=0;i<5;i++)
printf("%p \n", (dizi+i) );
return 0;
}
5
/*İşaretçiler ve artırma operatörü */
#include<stdio.h>
Çıktı : ?
int main( )
{
int A[]={10,20,30,40};
int *ptr;
ptr=A; //ptr=&A[0];
printf("%d \n", *ptr );
printf("%d \n", ++*ptr );
printf("%d \n", *++ptr );
printf("%d \n", *ptr++ );
printf("%d \n", *ptr );
return 0;
}
#include<stdio.h>
int main()
{ Çıktı : ?
int sayi[5];
int *ptr;
ptr=sayi;
ptr++;
printf("%p \n", ptr );
printf("%p \n", sayi+2 );
return 0;
}
6
//sayının karesini alan program
#include<stdio.h>
7
//işaretçi ile atama vb: //DEVAMI
#include<stdio.h>
int main()
struct deneme { {
char ch; deneme x;
int sayi; deneme *p;
}; p=&x;
(*p).ch='a';
(*p).sayi=100;
printf("karakter = %c \n", x.ch);
printf("sayi = %d \n", x.sayi);
return 0;
}
Çıktı: