दरअसल, C प्रोग्राम आमतौर पर अनंत पॉइंटर अप्रत्यक्ष का उपयोग करते हैं। एक या दो स्थिर स्तर आम हैं। ट्रिपल अप्रत्यक्ष दुर्लभ है। लेकिन अनंत बहुत आम है।
निश्चित रूप से एक संरचना की मदद से अनंत सूचक अप्रत्यक्षता प्राप्त की जाती है, प्रत्यक्ष घोषणाकर्ता के साथ नहीं, जो असंभव होगा। और एक संरचना की आवश्यकता है ताकि आप इस संरचना में अन्य डेटा को विभिन्न स्तरों पर शामिल कर सकें जहां यह समाप्त हो सकता है।
struct list { struct list *next; ... };
अब आपके पास हो सकता है list->next->next->next->...->next
। यह वास्तव में सिर्फ कई सूचक अप्रत्यक्ष हैं *(*(..(*(*(*list).next).next).next...).next).next
:। और .next
जब यह संरचना का पहला सदस्य है, तो मूल रूप से एक नूप है, इसलिए हम इसकी कल्पना कर सकते हैं ***..***ptr
।
इस पर वास्तव में कोई सीमा नहीं है क्योंकि लिंक को इस तरह की विशाल अभिव्यक्ति के बजाय एक लूप के साथ ट्रेस किया जा सकता है, और इसके अलावा, संरचना को आसानी से गोलाकार बनाया जा सकता है।
इस प्रकार, दूसरे शब्दों में, लिंक की गई सूची एक समस्या को हल करने के लिए अप्रत्यक्ष के दूसरे स्तर को जोड़ने का अंतिम उदाहरण हो सकती है, क्योंकि आप इसे हर पुश ऑपरेशन के साथ गतिशील रूप से कर रहे हैं। :)