黑马程序员技术交流社区
标题:
谁能解释下这个奇怪的运行结果
[打印本页]
作者:
王庆功
时间:
2014-9-25 18:01
标题:
谁能解释下这个奇怪的运行结果
#include <stdio.h>
int main(){
char name1[] = "itcast\01234";
char name2[] = {'o','k'};
printf("%s\n",name2);
return 0;
}
复制代码
至于这段代码我觉得看过视频的人都知道老师想要讲什么知识点。但是在练习时无意中我写成了这样,出来个很奇怪的运行结果。
运行结果:
okitcast
34
作者:
AngleMGG
时间:
2014-9-25 20:34
你确定?
屏幕快照 2014-09-25 08.22.50 PM.png
(22.61 KB, 下载次数: 38)
下载附件
2014-9-25 20:34 上传
作者:
小叶子
时间:
2014-9-25 21:09
本帖最后由 小叶子 于 2014-9-25 21:42 编辑
因为\是表示转义符
\接3个数字,是代表将八进制中的数字转义成10进制
\012 等价于 \n 所以就换行,输出34
作者:
小叶子
时间:
2014-9-25 21:47
012(八进制)转成10进制刚好=10
而码表中10正好是\n
作者:
崔石炫
时间:
2014-9-26 02:26
学习了!mark
作者:
Lizzie
时间:
2014-9-26 12:53
额 你发的程序的输出语句应该是输出name1 吧
作者:
wanyiyuan
时间:
2014-9-26 16:25
你打印一下 name1和name2的地址就知道是怎么回事了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2