在 C 语言中 printf("%d");输出结果 58,请问这是为什么

2015-11-30 16:33:54 +08:00
 Executable
2070 次点击
所在节点    问与答
9 条回复
xdeng
2015-11-30 16:38:51 +08:00
随机数 还可能会有惊喜
zhujinliang
2015-11-30 16:41:02 +08:00
没爆栈?
Executable
2015-11-30 16:42:09 +08:00
@xdeng 一直是 58 ,%c 结果是':';%o 是 72 ,%p 是 3A
aheadlead
2015-11-30 17:05:38 +08:00
@xdeng 应该说是未定义的行为 这个严格来说不是随机数
virusdefender
2015-11-30 17:06:02 +08:00
看下内存栈数据就明白了~
kikyous
2015-11-30 17:43:55 +08:00
c 语言不是你想用,想用就能用
:smile:
bdbai
2015-11-30 18:20:50 +08:00
啥编译器?啥环境?
xdeng
2015-11-30 18:58:52 +08:00
@Executable
@aheadlead 有一定的几率是一样的。
msg7086
2015-12-01 02:39:09 +08:00
因为栈上的第一个数字不巧正好是 58 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/240042

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX