为啥我的C语言char输出的时候不是\或78而是8呢?

 

#include<stdio.h>
void main()
{

    char a='\78';

    printf("%c\n",a);

}

​​​​​​​

 

这里\0表示空,\7表示震铃,如果你像如下那样写,打开电脑声音,并且输出,会听到铃声和屏幕上输出8

我猜测,'\7'变成转义字符了,没有实际意义;然后将字符8存储入字符变量a里。还有纠正一下你的错误,char类型只能存储单个字符,不能存储多个字符,如果你想存储多个字符,可以使用字符数组char[]或者字符串类型string。

\是个转义符,\7是代表了一个特殊的含义“响铃”,在ASCII表的第7个位置。如果你想要实现输出\78的话就得在前面再加一个\,\\才会被转义成单个的\输出。即char a="\\78";

因为char是一个字节,你括号里面两个字节,所以输出前面的字节ascii

\的后面一位被拿走作为 \含义 的标注,只不过\7没有实际含义。参考print \n和\\n

char只占一个字节的空间,地址的内容被后面的覆盖了,先是/ 再变为7 在变为8



78不是一个正确的 8进制数,所以可能导致错误吧~ 

c 是ascII 码,请输入ascII 或者 字符