C में चरित्र स्थिरांक (C ++ के विपरीत) का प्रकार है int
। तो यह पुकार
printf("%d",sizeof('A'));
आउटपुट 4. यह sizeof( 'A' )
बराबर है sizeof( int )
।
C मानक से (6.4.4.4 वर्ण स्थिरांक)
10 एक पूर्णांक वर्ण स्थिर प्रकार int है ....
दूसरी ओर (6.5.3.4 आकार और संरेखित ऑपरेटर)
4 जब आकार को एक ऑपरेंड पर लागू किया जाता है जिसमें टाइप चार, अहस्ताक्षरित चार, या हस्ताक्षरित चार, (या एक गुण there एड संस्करण) होता है, तो परिणाम 1 होता है।
तो sizeof
इस अभिव्यक्ति में ऑपरेटर sizeof( 'A' )
का प्रकार इस अभिव्यक्ति में रहते हुए टाइप sizeof( a )
किया जाता है जहां इस तरह की घोषणा की जाती है
char a = 'A';
ऑपरेंड का प्रकार है char
।
इस तरह से कॉल पर ध्यान दें
printf("%d",sizeof(6.5));
गलत रूपांतरण प्रारूप विनिर्देशक का उपयोग करें। आपको लिखना होगा
printf("%zu",sizeof(6.5));
इसके अलावा उपरोक्त कॉल double
में इस कॉल में रहते हुए एक प्रकार का एक निरंतर उपयोग किया जाता है
printf("%zu",sizeof(c));
चर c
प्रकार है float
।
इन कॉलों के लिए आप एक ही परिणाम प्राप्त कर सकते हैं यदि पहली कॉल ने फ़्लोट के प्रकार का निरंतर उपयोग किया हो
printf("%zu",sizeof(6.5f));
6.5
एक फ्लोट नहीं है, यहdouble