c - K&R exercise: Multidimensional array into pointer array -


व्यायाम (5-9): दिनचर्या day_of_year को अनुक्रमण के बजाय पॉइंटर्स के साथ फिर से लिखें।

मैं बस थका हुआ हो सकता है और सोच भी नहीं सकता, लेकिन वास्तव में एक संकेतक के साथ एक बहुआयामी सरणी कैसे बनती है?

मैं शायद बाकी कार्य को समझ सकता हूं , लेकिन मुझे वाक्यविन्यास का अधिकार नहीं मिल सकता है।

आपको बस दिन_ऑफ_यियर दिनचर्या, न कि दिन-टैब घोषणा मैं उस सरणी को-जैसा छोड़ देता हूं, और day_of_year को निम्नानुसार संशोधित कर सकता हूं:

  / * day_of_year: महीने और दिन से वर्ष का सेट / / int day_of_year (int वर्ष, इंट महीने, इंट डे) {char * p = (वर्ष% 4 == 0) & amp; amp; (वर्ष% 100! = 0) || (साल% 400 == 0)? डेडाब [0]: डेडाबे [1]; पी ++; के लिए (i = 1; i & lt; माह; i ++, p ++) {दिन + = * p; } वापसी दिन; }  

यदि आप p को कम करने की घोषणा करना चाहते हैं, तो आप ऐसा कर सकते हैं:

  char * p = डेडाब [(वर्ष% 4 == 0) & amp; amp; (वर्ष% 100! = 0) || (साल% 400 == 0)];  

यदि आप अभी भी उस पहुंच को हटाना चाहते हैं, तो भी:

  char * p = * (daytab + ((वर्ष% 4 == 0) & amp; ; और (वर्ष% 100! = 0) || (वर्ष% 400 == 0)));  

कोई भी तर्क दे सकता है कि यह बदसूरत दिखता है, लेकिन हे, यही आपको पॉइंटर्स के साथ मिलता है।


Comments