Executable
V2EX  ›  问与答

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

  •  
  •   Executable · Nov 30, 2015 · 3126 views
    This topic created in 4001 days ago, the information mentioned may be changed or developed.
    9 replies  •  2015-12-01 02:39:09 +08:00
    46fo
    46fo
    Nov 30, 2015
    1
    随机数 还可能会有惊喜
    zhujinliang
    zhujinliang
    Nov 30, 2015
    2
    没爆栈?
    Executable
    Executable
    OP
    Nov 30, 2015
    3
    @xdeng 一直是 58 ,%c 结果是':';%o 是 72 ,%p 是 3A
    aheadlead
    aheadlead
    Nov 30, 2015
    4
    @xdeng 应该说是未定义的行为 这个严格来说不是随机数
    virusdefender
    virusdefender
    Nov 30, 2015
    5
    看下内存栈数据就明白了~
    kikyous
    kikyous
    Nov 30, 2015
    6
    c 语言不是你想用,想用就能用
    :smile:
    bdbai
    bdbai
    Nov 30, 2015 via iPhone
    7
    啥编译器?啥环境?
    46fo
    46fo
    Nov 30, 2015
    8
    @Executable
    @aheadlead 有一定的几率是一样的。
    msg7086
    msg7086
    Dec 1, 2015
    9
    因为栈上的第一个数字不巧正好是 58 。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2140 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 08:23 · PVG 16:23 · LAX 00:23 · JFK 03:23
    ♥ Do have faith in what you're doing.