इस सवाल का पहले से ही एक उत्तर है: < / P>
- 15 उत्तर
- 9 उत्तर <पूर्व>
#include & lt; stdio.h & gt; #include & lt; string.h & gt; इंट फैशन (इंट []); मुख्य () {int a [] = {3,2,5,1,3}; पूर्णांक आकार; आकार = आकार का आकार / आकार (int); Printf ("आकार% d \ n", sizeof (ए)); // सरणी printf का आकार ("int% d \ n" का आकार, आकार (int)); // int printf का आकार ("सर% की संख्या \ n", आकार); सरणी फैशन की वास्तविक लंबाई (ए); वापसी 0; } इंट फ़ैशन (इंट इनपुट 1 []) // इंट फ़ैशन के साथ प्रयास किया (इंट्रेट * इंप्ट 1) {इंट साइज़; आकार = इनपुट का आकार / आकार (int); Printf ("\ n फ़ंक्शन \ n"); Printf ("आकार% d \ n", sizeof (input1)); // सरणी printf का आकार ("int% d \ n" का आकार, आकार (int)); // int printf का आकार ("सर% की संख्या \ n", आकार);नीचे कोड का आउटलुक है:
आउटपुट सरणी का आकार है, जो कि 20 आकार के इंट 4 लम्बाई का सरणी है 5 सरणी के फ़ंक्शन के आकार में सरणी 2 के अंतराल के 4 इंच के आकार का 2मुख्य फ़ंक्शन और फ़ंक्शन दोनों कोड समान ही हैं, लेकिन परिणामस्वरूप परिणाम अलग-अलग होते हैं।
क्यों मुख्य फ़ंक्शन में सरणी का आकार बदल जाता है, यह 20 है और फ़ंक्शन में यह 8 है?
मैंने भी फ़ैशन (इंट इनपुट 1 []) के साथ कोशिश की, लेकिन इसके परिणामस्वरूप भी।
इसे अलग-अलग टाइपिंग के साथ करना है
sizeof एक कंपाइल ऑपरेटर है, एक रनटाइम फ़ंक्शन नहीं।a प्रकारint [5] है, जो सही ढंग से5 * 4 = 20 के आकार की ओर जाता है।इनपुट 1 प्रकार का हैint * जिसका आकार समान है एकशून्य * के रूप में। 32-बिट सिस्टम और 64-बिट सिस्टम पर8 परआकारफ (पूर्णांक) = आकार (शून्य *) सामान्यतया4 है सामान्यतः जब कार्य करने के लिए सरणियों को गुजरते हुए आप पहले तत्व (आपके फ़ंक्शन के अनुसार) को पॉइंटर पास करते हैं और साथ ही अलग तर्क के रूप में सरणी की लंबाई गुजरते हैं।< / div>
- 9 उत्तर <पूर्व>
No comments:
Post a Comment