开发者社区> 问答> 正文

char a = "C";printf("%c",a);打印问题

我用VS2013运行这个代码,老打印 T,将a初始化为"X",X代表其他字符,还是打印 T,这是怎么回事?

展开
收起
a123456678 2016-03-20 11:40:24 2265 0
1 条回答
写回答
取消 提交回答
  • char a = "C",这里“C”不是字符常量,它表示的是两个字符(字符C和0)组成的字符串,“C”实际上表示的是字符串所在的内存地址,上面那条语句试图将一个内存地址赋给a,内存地址占4个字节,而char类型只占一个字节,你试着将“C”的地址给打印出来,再结合大小端模式,估计就能够得出答案了。但是char a = "C"这种做法是不推荐的额,程序根本运行不了,提示有错误,类型不一样,error: invalid conversion from const char*' tochar'。

    #include 
    int main()
    {
    char *a ="C";
    printf("%p",a);
    return 0;
    }

    我运行的结果是00403000,希望对你有所帮助。

    2019-07-17 19:09:19
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载