c++ size of array is changing using sizeof -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 3 उत्तर

मेरे पास सरल मुख्य है जिसे कहा जाता है पैरामीटर के रूप में सरणी के साथ सरल तरीके - सरणी में आकार सही है, लेकिन तब जब मैं सरणी को अलग आकार के सरणी को प्राप्त करने की कोशिश करता हूं:

  int bubbleSort (int arr []) // हाँ, मुझे पता है कि यह प्रकार पूर्ण नहीं है {int arrSize = sizeof (arr); // यहाँ है आईएस 4 बूल है borted = true; जबकि (बीएसएआरटी) {के लिए (इंट आई = 0; आई एंड एलटी; एआरआइसीईज़; आई ++) {यदि (एआरई [आई] & gt; एआरआर [आई + 1]) {इंट टीएमपी = एआरआर [आई]; Arr [i] = arr [i + 1]; एआरआर [आई + 1] = टीएमपी; }} BSorted = false; } वापसी 1; } Int main (int argc, char * argv []) {int arr [] = {4,3,7,8,9}; bubbleSort (आगमन); Int sOf = sizeof (arr); // यहां आकार 20 है ???? (इंट जे = 0; जे एंड एलटी; एसओफ़; जे ++) के लिए {printf ("% d", एआरआर [जे]); } वापसी 0; }  

आप पैरामीटर के रूप में मान द्वारा * arrays * नहीं कर सकते हैं फैशन)। वाक्यविन्यास void f (int a []) केवल वाक्यविन्यास चीनी है जो void f (int * a) के समान प्रत्येक पहलू में है, और फ़ंक्शन पैरामीटर एक सूचक है , एक सरणी नहीं इसलिए आप पॉइन्टर के आकार को मापने का अंत करते हैं।

वैकल्पिक सिंटैक्स आशय के ढीले प्रकार के दस्तावेजों के रूप में काम कर सकता है, संकेत है कि आप इस फ़ंक्शन को किसी सरणी तत्व के पते के साथ कॉल करने की योजना बना रहे हैं, लेकिन वहां सूचक वाक्यविन्यास में कोई वास्तविक अंतर नहीं है।

*) एरे प्रकार और फ़ंक्शन प्रकार दोनों इस तरह से विवश हैं, यही कारण है कि लोग अक्सर कहते हैं कि वे प्रकार सिस्टम के प्रथम श्रेणी के नागरिक नहीं हैं।


Comments

Popular posts from this blog

java - org.apache.http.ProtocolException: Target host is not specified -

java - Gradle dependencies: compile project by relative path -

ruby on rails - Object doesn't support #inspect when used with .include -