C语言问题,为什么输出结果是:n,6,6

#include<stdio.h>voidmain(){printf("%c,%c,%c\n",'\156','\o156','\0156');}输出结果:n,6,6注意... #include <stdio.h>
void main(){
printf("%c,%c,%c\n",'\156','\o156','\0156');
}
输出结果:n,6,6
注意:第二个字符中是英文字母o,第三个是数字0
展开
 我来答
孝稷36
2014-01-18 · TA获得超过143个赞
知道答主
回答量:85
采纳率:0%
帮助的人:58.6万
展开全部
第一个\156, 156对应8进制是110,转义字符对应n,
第二个\o156, \o15无对应的转义字符,输出空,所以输出6
第三个\015对应8进制是13,转义字符对应回车,不能输出,所以还是输出6
追问
请问printf("%c\n",'abc');输出结果为什么是 c 呢
追答
你这种表示法是错的,字符用单引号表示,占1个字节,  'abc'中有效的只能是一个字节,但具体的规定我不清楚,可能是从右往左编译的,所以输出c,你可以多换数据试试
匿名用户
2014-01-18
展开全部
八进制转义字符是:由反斜杠'/'和随后的1~3个八进制数字构成的字符序列
所以 你第一个\156是个八进制的转义字符。n的ascii码 十进制是110,转换成8进制就是156。

可是按理说第一个和第三个应该一样啊。怎么会不一样呢。
更多追问追答
追问

追答
这段代码具体在哪里用的?还是这是什么题目?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4e11328
2014-01-18
知道答主
回答量:79
采纳率:0%
帮助的人:9.9万
展开全部
听不懂。。。
追问
输出函数要输出的三个字符看起来不一样,是吧?'\o156'中的那个圈是英文字母o;'\0156'中的圈是数字0; 最后打印结果是:n,6,6 请问为什么啊?
追答
这个就是打印本质的结果了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式