हम sizeof(x) / sizeof(x) क्यों लिखते हैं?[0]) C++ में सरणी का आकार निर्धारित करने के लिए केवल sizeof(x) लिखने के बजाय


sizeof() ऑपरेटर सरणी के आकार की गणना कैसे करता है

मैंने क्या प्रयास किया है:

मैंने सरणी के आकार की गणना करने के लिए sizeof(x) लिखा लेकिन मुझे अपेक्षित आउटपुट नहीं मिला।

समाधान 1

sizeof पैरामीटर द्वारा उपयोग किए गए बाइट्स की संख्या लौटाता है: एक सरणी के लिए, प्रत्येक तत्व का आकार तत्वों की संख्या से गुणा किया जाता है।

ये कोशिश करें:

सी
#include <stdio.h>

int main()
{
    int arr[10];
    printf("%lu:%lu\n", sizeof(arr), sizeof(arr[0]));

    return 0;
}

और आपको “40:4” परिणाम मिलेगा: सरणी कुल 40 बाइट्स मेमोरी का उपयोग करती है, और सरणी में 10 तत्वों में से प्रत्येक 4 बाइट्स का उपयोग करता है।

समाधान 2

एक छोटा सा जोड़: आपके द्वारा लिखी गई अभिव्यक्ति,

सी
sizeof( x ) / sizeof( x[0] )

किसी सरणी में आइटमों की संख्या की गणना करने के लिए उपयोग किया जाता है। यह वैसा ही है जैसा कि _countof मैक्रो VisualStudio C++ में होता है।

तीन भावों और उनके परिणाम को संक्षेप में प्रस्तुत करना int x[8] :

sizeof(x)               size in bytes of x             : 32
sizeof(x[0])            size in bytes of one item of x : 4
sizeof(x)/sizeof(x[0])  number of items in x           : 8

コメント

タイトルとURLをコピーしました