c++ - Pointer array and sizeof confusion -


निम्नलिखित कोड आउटपुट 4 क्यों करता है?

  char ** संकेतक = नया चार * [1]; Std :: cout & lt; & lt; आकारफ (सूचक) & lt; & lt; "\ N";  

मेरे पास एक सरणी है, लेकिन इसकी लंबाई 1 होनी चाहिए, क्या नहीं?

सूचक एक सूचक है यह एक सूचक का आकार है, जो आपके सिस्टम पर 4 बाइट्स है।

* सूचक भी एक सूचक है sizeof (* pointer) 4 भी हो जाएगा।

** सूचक एक कक्ष है। sizeof (** सूचक) हो जाएगा 1. नोट करें कि ** सूचक एक वर्ण है क्योंकि इसे char ** के रूप में परिभाषित किया गया है। सरणी के आकार में नए प्रवेशकों ने प्रवेश किया।

ध्यान दें कि sizeof एक कंपाइलर ऑपरेटर है। यह संकलन समय पर एक स्थिरता के लिए प्रदान किया जाता है। कुछ भी जो रनटाइम पर बदल सकता है (जैसे कि एक नया ऐरे के आकार का) sizeof का उपयोग करके निर्धारित नहीं किया जा सकता है। नोट 2: यदि आपने इसे परिभाषित किया है:

  चार * सरणी [1]; Char ** pointer = array;  

अब सूचक पहले से ही समान मान है, लेकिन अब आप कह सकते हैं:

  int arraySize = sizeof (array ); // सरणी int सरणी के कुल स्थान का आकार = लेंस = आकार (सरणी) / आकार (सरणी [0]); // तत्व की संख्या == 1 यहां।  

Comments

Popular posts from this blog

google indexing -

php - How to paginate multiple results in CakePHP? -

wpf - Converter stops filter working -