spencerqiu
V2EX  ›  问与答

关于 C++全局变量:并未在函数中定义与全局变量同名的局部变量,并且变量值在函数中正常,但在 main 函数输出时就变成了 0

  •  
  •   spencerqiu · Mar 9, 2015 · 2053 views
    This topic created in 4190 days ago, the information mentioned may be changed or developed.
    这是一个求最大子序列和的程序。

    因为要输出起始位置和终止位置,就定义了 tail 和 head 两个全局变量,当时检测了一下 find 函数里的 tail 和 head 值,发现求到的是正确的。

    但是在 main 函数里输出时,tail 和 head 就都变成了 0 ,搜索了一下,说是在函数中定义同名局部变量会出现这种情况.....但是我并没有啊......

    2 replies    2015-03-09 21:40:52 +08:00
    ChanneW
        1
    ChanneW  
       Mar 9, 2015
    先输出了,后 find 的
    BGLL
        2
    BGLL  
       Mar 9, 2015
    cout流的执行顺序,C++未定义,取决于编译器....
    大部分情况是反直觉的从左到右
    这样
    cout <<" "<<tail<<" "<<head<<find(a,k)<<endl;
    就好了....
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2514 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:54 · PVG 08:54 · LAX 17:54 · JFK 20:54
    ♥ Do have faith in what you're doing.