इस कोड को मान लें:
#include <iostream>
struct test {
int a[3];
float b[2];
};
मैं इन दोनों तरीकों से सरणी में प्रवेश कर सकता हूं:
int main(){
test t = {{1,2,3}, {1.0,2.0}};
return 0;
}
या
int main(){
test t = {1, 2, 3, 1.0, 2.0};
return 0;
}
दूसरा दृष्टिकोण भी संकलन कैसे कर रहा है? संकलक प्रत्येक मान उठा रहा है और क्रम में एक सरणी स्लॉट डाल रहा है?
1 उत्तर
दूसरा स्निपेट एग्रीगेट इनिशियलाइज़ेशन में बताए अनुसार पूरी तरह से मान्य है:
नेस्टेड इनिशियलाइज़र सूचियों के आस-पास के ब्रेसिज़ को हटा दिया जा सकता है (छोड़े गए), इस मामले में जितने आवश्यक हो उतने इनिशियलाइज़र क्लॉज़ का उपयोग प्रत्येक सदस्य या संबंधित सबएग्रीगेट के तत्व को इनिशियलाइज़ करने के लिए किया जाता है, और बाद के इनिशियलाइज़र क्लॉज़ का उपयोग निम्नलिखित सदस्यों को इनिशियलाइज़ करने के लिए किया जाता है। वस्तु ...
चूंकि test
एक समुच्चय है, जो उपसमूहों a
और b
से बना है, नेस्टेड ब्रेसिज़ को छोड़कर पहले 3 तत्वों का उपयोग a
को प्रारंभ करने के लिए किया जाता है, और शेष 2 तत्व b
को इनिशियलाइज़ करने के लिए इस्तेमाल किया जा रहा है।
संबंधित सवाल
नए सवाल
c++
C ++ एक सामान्य-प्रयोजन प्रोग्रामिंग भाषा है। यह मूल रूप से C के विस्तार के रूप में डिज़ाइन किया गया था और इसमें एक समान सिंटैक्स है, लेकिन यह अब पूरी तरह से अलग भाषा है। C ++ कंपाइलर के साथ संकलित कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें। विशिष्ट मानक संशोधन [C ++ 11], [C ++ 14], [C ++ 17], [C ++ 20] या [C ++ 23], आदि से संबंधित प्रश्नों के लिए संस्करण-विशिष्ट टैग का उपयोग करें। ।