उदाहरण के एक बहुत में मैं एक साधारण getListLength() फ़ंक्शन यह कुछ ऐसा दिखाई देगा पढ़ा है के रूप में: क्या मुझे अनावश्यक रूप हमलों एक स्थानीय सूचक की घोषणा (हैप्वाइंटर सी कार्यों में तर्क
int getListLength(struct node *head)
{
struct node *temp = head;
int iCount = 0;
while (temp)
{
++iCount;
temp = temp->next;
}
return iCount;
}
इस मामले में * अस्थायी) जो पारित पैरामीटर की प्रतिलिपि बनाता है। अगर मैं सही ढंग से याद करता हूं, तो पारित पैरामीटर अपनी प्रतियां प्राप्त करते हैं। इस प्रकार, स्थानीय सूचक की आवश्यकता नहीं होगी जो * सिर की प्रतिलिपि बनाता है क्योंकि * सिर एक प्रतिलिपि है, है ना? दूसरे शब्दों में, क्या * temp सूचक को त्यागना और इसके बजाय हर जगह सिर का उपयोग करना सही होगा?
"जब कोड लंबा और अधिक जटिल होता है।" - मैं इसके साथ बहस कर सकता था। यदि कोई कार्य एक ओपी से अधिक लंबा है, और यदि यह इतना जटिल है कि यह एक से अधिक कार्य करता है और किसी को चर नामों को याद रखने की आवश्यकता होती है, तो उस फ़ंक्शन को फिर से क्रियान्वित किया जाना चाहिए। –
यह शायद सच है, लेकिन असली दुनिया शायद ही कभी सही हो सकती है जैसा कि चाहें। – jjlin