19 Eylül 2008 Cuma

Const ve Pointer..

int x = 1;
const int *ptr = &x;
dediğimizde artık *ptr integer tipinden bir nesneye işaret etmektedir. Ancak const olarak tanımlandığından yani gösterdiği nesne consttur dendiğinden bu nesneye bir atama yapamaz. Yani aşağıdaki satır yanlıştır.
*ptr = 8; Ancak ptr bir başka nesneyi gösterecek şekilde sonradan ayarlanabilir.

int x = 1;
int const *ptr = &x;
dediğimizde ise artık kendisi const olan integer tipinde bir alanı işaret eden bir pointer tanımlamış oluruz. Pointerın gösterdiği nesnenin değeri yani *ptr ye bir atama yapılabilir ancak ptr nin bir başka nesneyi göstermesi sağlanamaz.

Eğer const int const *ptr = &x; şeklinde bir tanımlama yapmış olsaydık bu durumda hem işaret edilen adres yani ptr hem de işaret edilen nesne yani *ptr değiştirilemez olurdu..

Hiç yorum yok:

Yorum Gönder