为了账号安全,请及时绑定邮箱和手机立即绑定

*符号的疑问

#include<stdio.h>   

int main()              

{

    char a='*';

    int b=sizeof('*');

    printf("%c,%d",a,b);

    return 0;

}


输出结果为*,4    

为什么*的字节大小为4?*位char型数据,char型数据大小不该是1吗?

正在回答

2 回答

#include <stdio.h>   
int main()              
{
    char a='*';
    printf("%c,%d",a,sizeof(a)); // int b=sizeof('*'); 会直接把sizeof返回的转成4
    return 0;
}

试试这个

0 回复 有任何疑惑可以回复我~
#1

学长就是帅 提问者

我知道了,是慕课网的编辑器存在了问题bug?用VC就不会是4而是1了,谢谢
2015-04-14 回复 有任何疑惑可以回复我~

不是的 你不能输入int b=sizeof('*') 

因为int后一定是实型 所以最后输出的值一定是实型啊

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926207    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

*符号的疑问

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信