Executable
V2EX  ›  问与答

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

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