美文网首页
[转载]C/C++:sizeof('a')的值为

[转载]C/C++:sizeof('a')的值为

作者: zshanjun | 来源:发表于2017-10-11 11:41 被阅读4次

    C语言:

    
    char a = 'a';
    
    sizeof(char) = 1
    
    sizeof(a) = 1
    
    sizeof('a') = 4
    
    

    C++语言:

    
    char a = 'a';
    
    sizeof(char) = 1
    
    sizeof(a) = 1
    
    sizeof('a') = 1
    
    

    字符型变量是1字节这个没错,奇怪就奇怪在C语言认为'a'是4字节,而C++语言认为'a'是1字节,纠结了...

    网上查了一下,原来是规则,原因如下:

    C99标准的规定,'a'叫做整型字符常量(integer character constant),被看成是int型,所以在32位机器上占4字节。

    ISO C++标准规定,'a'叫做字符字面量(character literal),被看成是char型,所以占1字节。


    转载自:

    相关文章

      网友评论

          本文标题:[转载]C/C++:sizeof('a')的值为

          本文链接:https://www.haomeiwen.com/subject/sctwyxtx.html