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