Tam Sürümünü Görmek İçin : const
BetulSahin
05/02/2007, 19:20
const int *isaretci;
int *const isaretci;
Bu iki deyim arasındaki fark nedir ?
acehreli
05/02/2007, 19:48
1) const int * isaretci;
Birincisinde isaretcinin gosterdigi sayinin o isaretci yoluyla degistirilemeyecegi soylenmektedir. AsIl sayi sabit olabilir de olmayabilir de. Isaretci baska bir sabit sayiyi gosterebilir ama:
int main()
{
const int degismez_sayi = 142;
int sayi = 42;
const int * isaretci = 0;
isaretci = °ismez_sayi;
// *isaretci = 143; // HATA: isaretci yoluyla degisemez
isaretci = &sayi; // Evet, isarecti baska bir sayiyi gosterebiliyor
// *isaretci = 43; // HATA: isaretci yoluyla degisemez
}
Ara not: Yazim acisindan farkli da olsa, su da birincisiyle ayni anlama gelir:
int const *isaretci;
Cunku onemli olan, 'const'in yildizin ne tarafinda oldugudur.
2) int * const isaretci;
Ikincisinde ise sabit olan isaretcidir. Isaretci ancak ilk gosterdigi sayiyi gosterebilir; baska sayiyi gosteremez. Sayi degistirilebilir ama:
int main()
{
int sayi = 42;
int baska_sayi = 52;
int * const isaretci = &sayi;
*isaretci = 43; // gosterdigi degistirilebilir
// isaretci = &baska_sayi; // HATA: isaretci baska sayiyi gosteremez
}
Tamamlamis olmak icin bir de her ikisinin de const olduguna bakabiliriz:
3) const int * const isaretci;
Bu durumda da ne isaretci baska bir sayiyi gosterebilir, ne de gosterdigi degistirilebilir:
int main()
{
int sayi = 42;
int baska_sayi = 52;
const int * const isaretci = &sayi;
// *isaretci = 43; // HATA: gosterdigi degistirilemez
// isaretci = &baska_sayi; // HATA: baska sayiyi gosteremez
}
Ali
Forum Yazılımı : vBulletin v3.6.8, Copyright ©2000-2008, Jelsoft Enterprises Ltd.