Salı, 11 Haziran 2013 00:00

int* const ile const int* arasındaki fark.

Yazan 
Öğeyi Oyla
(0 oy)
Her zaman karıştırdığım ve öğrendiğim kadarıyla birçok kişinin de karıştırdığı aşağıdaki değişken tanımlama kodlarının arasındaki fark birinin değişkenin değeri değiştirilemez oluşu diğerinin de değişkenin adresinin değiştirilemez oluşudur.
int* const ptr = &adresDegismez;
int* const ptr( &adresDegizmez );

const int *ptr = &degerDegizmez;
const int *ptr( &degerDegizmez );

Bunları birbirinden ayırmak için aşağıdaki şekilde tanımlama geriye doğru okunmalıdır.

int* const ptr
Sabit (const) , gösterici(*), tamsayı tipindeki değer(int)
Sabit tanımlaması göstericinin önünde olduğuna göre ve göstericide adres taşıdığına göre sabit olan adres olur.


const int* ptr
Sabit(const), tamsayı tipindeki değer(int), gösterici(*)
Sabit tanımlaması tamsayı tipindeki değerin önünde olduğuna göre ve sabit olan da değer olduğuna göre değer sabit olur.

const int* const ptr
Sabit(const), gösterici(*),tamsayı tipindeki değer(int),sabit(const)
Sabit bir değer taşıyan değişkenin adresini gösteren sabit gösterici. Bu tanımlama ilede hem adres hem de değişkenin değeri sabit olur.

Aşağıdaki tanımlamalar birbirine eşit olduğu unutulmamalı.

const int * ptr = int const * ptr
const int * const ptr = int const * const ptr

Okunma 2661 defa Son Düzenlenme Pazar, 23 Mart 2014 03:28
Ufuk Yıldırım

Yazılım Geliştirme Uzmanı

Web site: www.ufuk.biz

Yorum Ekle

Gerekli olan (*) işaretli alanlara gerekli bilgileri girdiğinizden emin olun. HTML kod izni yoktur.