flowaway_
ackfbcu
采纳率100%
2015-04-14 15:33

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

已采纳

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

8条回答

  • u012271952 浪前青山 6年前

    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,希望对你有所帮助。

    点赞 评论 复制链接分享
  • u012271952 浪前青山 6年前

    char a = "C",这里“C”不是字符常量,它表示的是两个字符(字符C和\0)组成的字符串,“C”实际上表示的是字符串所在的内存地址,上面那条语句试图将一个内存地址赋给a,内存地址占4个字节,而char类型只占一个字节,你试着将“C”的地址给打印出来,再结合大小端模式,估计就能够得出答案了。

    点赞 评论 复制链接分享
  • yushuo19901110 洋哥爱猫猫 6年前

    char型字符只能用单引号,使用双引号就成了字符串了,这个一定要分清。

    点赞 评论 复制链接分享
  • u012241729 代理舍长 6年前

    char a='C';只能用单引号吧!

    点赞 评论 复制链接分享
  • dogfish Dogfish 6年前

    char使用单引号的。字符串就是很用双引号。

    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 6年前
     #include <stdio.h>
    int main()
    {
    char a = 'C';
    printf("%c",a);
    }
    

    输出C
    参考:http://codepad.org/lhlYvuuT
    是引号的问题

    点赞 评论 复制链接分享
  • chen8440 chen8440 6年前

    要用单引号,双引号表示的是字符串……

    点赞 评论 复制链接分享
  • qq_27034631 努力的乌龟 6年前

    char a = 'C';因该是单引号吧!!!

    点赞 评论 复制链接分享