Göstericiler(Pointers)-4
Dizi isimleri nesne belirtir
mi?
Dizi isimlerinin belirttiği
adres nasıl kullanılır?
Dizi isimlerinin gösterici
nesnesine atanması nasıl?
Diziler fonksiyonlara nasıl
parametre olarak geçirilir?
/*Açıklama :
Dizi isimleri nesne belirtir mi?
* Dizi isimlerinin belirttiği adres nasıl
kullanılır?
* Dizi isimlerinin gösterici nesnesine atanması
nasıl?
* Diziler fonksiyonlara nasıl parametre olarak
geçirilir?
*/
#include <stdio.h>
#include
<stdlib.h>
void showArray(int *ptr, int size)
{
int i = 0;
for(i = 0; i < 10; ++i)
{
printf("%d.
eleman : %d\n", i, ptr[i]);
}
}
int main(void)
{
/* Dizi isimleri nesne ifade etmez.
Dizi isimleri sabit bir
*
adres değeri ifade eder. Bu yüzden sol taraf ifadesi
*
olarak kullanılamaz.Dizi elamanlari bir nesne belirtir.
*/
{
char name[10]; //dizi ismi
nesne belirtmez.
//dizi ismi dizinin başlangıç adresini
belirtir.
//name, (char *) tpinden bir adres
ifade eder. 0x100 = name
//name[0] bir nesne ifade eder.
//name = &name[0];
printf("name =
%p\n", name);
printf("name[0]'in
adresi= %p\n", &name[0]);
//++name; //hatali.
}
/* Dizi isimlerinin adres bilgisinin göstericilere
atanması.
*
Dizi isimleri fonksiyonlara geçirilirken göstericiler
*
kullanılır.
*/
{
int i = 0;
int numbers[10] =
{1,2,3,5,6,7,8,9,11,111};
//numbers (int *) tipinden bir adres
ifade ediyor
int *ptr = numbers;
//numbers göre elemanlarin ekrana
yazilmasi
for(i = 0; i <
10; ++i )
{
printf("%d.
eleman : %d\n", i, numbers[i]);
}
//ptr göre dizi elamlarini yazilmasi
showArray(numbers, 10);
}
// Diziler kendi türlerinden göstericilere
atanması uygundur.
{
char ch[100];
char *pCh = ch;
float money[100];
float *pMoney = money;
}
//Not: Dizi isimleri nesne belirtmmez.Ancak
dizi elemanlari nesne ifade eder.
// int numbers[10];
//numbers , nesne ifade etmez.
numbers[0], nesne ifade eder.
return EXIT_SUCCESS;
}
Hiç yorum yok:
Yorum Gönder