Aslında, C programları genellikle sonsuz işaretçi dolaylı işlevini kullanır. Bir veya iki statik seviye ortaktır. Üçlü dolaylama nadirdir. Fakat sonsuzluk çok yaygındır.
Sonsuz işaretçi dolaylaması, elbette imkansız olacak doğrudan bir bildirici ile değil, bir yapı yardımıyla elde edilir. Ve bu yapıya, sonlandırılabilecek farklı düzeylerde başka veriler ekleyebilmeniz için bir yapıya ihtiyaç vardır.
struct list { struct list *next; ... };
şimdi sahip olabilirsiniz list->next->next->next->...->next
. Bu gerçekten sadece çoklu işaretçi indirections geçerli: *(*(..(*(*(*list).next).next).next...).next).next
. Ve .next
temelde yapının ilk üyesi olduğunda bir noop, bu yüzden bunu hayal edebiliriz ***..***ptr
.
Bu konuda gerçekten bir sınır yoktur, çünkü bağlantılar böyle dev bir ifade yerine bir döngü ile geçilebilir ve dahası, yapı kolayca dairesel hale getirilebilir.
Başka bir deyişle, bağlantılı listeler, bir sorunu çözmek için başka bir dolaylama düzeyi eklemenin nihai örneği olabilir, çünkü her itme işleminde dinamik olarak yapıyorsunuz. :)