Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü

Benzer bir sunumlar


... konulu sunumlar: "Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü"— Sunum transkripti:

1 Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
Dizi Kavramı ve Bildirimi Dizi Elemanlarına İlk Değer Verilmesi gets, puts fonksiyonları

2 Adres Kavramı Adres hem donamım hemde yazılıma ilişkin bir kavramdır.
Donanımsal olarak bellekte yer gösteren bir sayıdan ibarettir. Mikroişlemci bellekteki bir bölgeye ancak o bölgenin adres bilgisiyle erişebilir.

3 Adres Kavramı Bellek bölgesindeki yerini göstermekle kalmaz, tür bilgisini de verir. Bellekteki her bir byte diğerinden farklı bir adresle temsil edilir.

4 Nesnelerin Adresleri Her nesne bellekte yer kaplar ve bir adrese sahiptir. Nesnelerin adresleri, derleyici ve işletim sistemi birlikte karar verir.

5 Nesnelerin Adresleri Nesnelerin adresleri ;
program yüklenmeden önce kesin olarak bilinemez programcı tarafından da önceden tespit edilemez. Programcı, nesnelerin adreslerini ancak çalışma sırasında (run time) öğrenebilir.

6 sizeof Operatörü Bir nesnenin ya da veri türünün bellekte byte cinsinden kapladığı alanın belirlenmesini sağlayan operatördür. İki biçimde kullanılır sizeof(nesne ismi) sizeof(tür) Fonksiyonların geri dönüş değerleri, bellekte ne kadar byte yer kapladığını gösterir.

7 szfoper.c programı #include <stdio.h> int main() { char c;
short s; int i; long l; float f; double d; long double ld; int array[ 20 ]; /* 20 tane int dizi elemanı yaratılıyor */ int *ptr = array; /* gösterici dizisi yaratılıyor */ printf( " sizeof c = %d\t sizeof(char) = %d" "\n sizeof s = %d\t sizeof(short) = %d" "\n sizeof i = %d\t sizeof(int) = %d" "\n sizeof l = %d\t sizeof(long) = %d" "\n sizeof f = %d\t sizeof(float) = %d" "\n sizeof d = %d\t sizeof(double) = %d" "\n sizeof ld = %d\t sizeof(long double) = %d" "\n sizeof array = %d" "\n sizeof ptr = %d\n", sizeof c, sizeof( char ), sizeof s, sizeof( short ), sizeof i, sizeof( int ), sizeof l, sizeof( long ), sizeof f, sizeof( float ), sizeof d, sizeof( double ), sizeof ld, sizeof( long double ), sizeof array, sizeof ptr ); return 0; } szfoper.c programı szfoper.c dosyasindan alabilirsiniz

8 “szfoper.c” programı ekran çıktısı

9 Dizi Kavramı ve Bildirimi
Bellekte sürekli bir biçimde bulunan aynı türden nesnelerin oluşturduğu kümeye dizi diyoruz. İki temel özelliği var Elemanların bellekte sürekli bir biçimde bulunması Elemanların aynı türden nesneler olması

10 Dizi Kavramı ve Bildirimi
Dizi bildirimi aşağıdaki gibi yapılır <Tür> <Dizi_ismi> <Eleman_sayısı> örnekler; char s[30]; /*s, 30 elemanlı, her elemanı karakter olan dizidir*/ int ogrenci_sayisi[50]; /*ogrenci_sayisi, 50 elemanlı, her elemanı int olan dizidir*/ double notlar[20]; /*notlar, 20 elemanlı, her elemanı double olan dizidir*/

11 Dizi Kavramı ve Bildirimi
char s[13]; c b i l g s a y r \n int ogrenci_sayisi[13]; 20 3 27 33 67 22 50 32 44 90 88

12 Dizi Kavramı ve Bildirimi
Bildirim sırasında dizilerin eleman sayısı tamsayı türünden bir sabit ifadesiyle belirtilmek zorundadır. int x[n]; YANLIŞ, dizi uzunluğu sabit ifade olmalıydı. int x[30]; DOĞRU

13 Dizi Kavramı ve Bildirimi
Dizilerde diğer nesneler gibi yerel ve global faaliyet alanlarına sahip olabilirler. Diziler, fonksiyonlara parametre olarak geçirilebilirler.

14 Dizi Elemanlarına İlk Değer Verilmesi
<Tür> <Dizi_ismi> <uzunluk>={s1,s2,…}; Örnekler; int a[10]={22, 23, 4, 9, 2, 2, 3, 4, 0, 10}; double kilo[3]={45.7, 69.3, 90.5}; char s[10]={‘c’, ‘ ’, ‘d’, ‘e’, ‘r’, ‘s’, ‘i’, ‘\0’}; Dikkat! Küme parantezi ; ile sonlandırılmıştır.

15 Dizi Elemanlarına İlk Değer Verilmesi
Dizilerin tüm elemanlarına ilkdeğer verme zorunluluğu yoktur. int a[10]={22, 23, 4}; İlk üç elemana ilk değer verilmiştir. Bu değişken global bir değişkense elemanlar 0 değeri ile doldurulur. Eğer yerel değişken ise elemanlar hafızada bulunan rasgele sayılardır.

16 Dizi Elemanlarına İlk Değer Verilmesi
Dizinin uzunluğundan fazla elemana ilk değer verilmesi HATADIR. int a[3]={22, 23, 4,5,6};/* HATA*/ Dizi elemanlarına ancak sabit ifadeler ile ilkdeğer verilebilir. int a[3]={x, y, 4};/* HATA*/ Dizilere ilk değer verilirken dizi uzunluğu hiç yazılmayabilir. int a[ ]={22, 23, 4,5,6};/* DOĞRU*/

17 gets, puts fonksiyonları
gets fonkisyonu klavyeden girilen karakterleri diziye yerleştirdikten sonra dizinin sonuna ‘\0’ sonlandırıcı karakterini koyar. 10 elemanlı bir dizi açmışsanız, diziye en fazla 9 elemanı gets ile yerleştirebilirsiniz.

18 #include <stdio.h> int main(void) { char dosya_ismi[128];
printf("Dosya ismi gir: "); gets(dosya_ismi); printf("%s \n", dosya_ismi); %puts(dosya_ismi);/*bunu da deneyin ve printf ile karsilastirin*/ return 0; } ornekgets.c programı ornekgets.c programını yazarar deneyiniz. Puts ve printf ile arasındaki farkı bulunuz.

19 gets, puts fonksiyonları
Puts bir karakter dizisinin içeriğini ekrana yazdırmak için kullanılır. Puts ve printf işlevsel olarak eşdeğerdir.

20 /*bir tamsayi dizisinde bulunan elemanlarin
sayisal toplamini bulan programdir. */ #include<stdio.h> int main(void) { int dizi[10]={20,30,80,55,100,60,80,90,10,60}; int toplam, k; for(k=0, toplam=0;k<10; ++k) toplam += dizi[k]; printf("toplam = %d\n", toplam); return 0; } diziornek.c programı


"Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü" indir ppt

Benzer bir sunumlar


Google Reklamları