spencerqiu
V2EX  ›  问与答

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

  •  
  •   spencerqiu · Mar 9, 2015 · 2154 views
    This topic created in 4263 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
    ChanneW
    Mar 9, 2015
    1
    先输出了,后 find 的
    BGLL
    BGLL
    Mar 9, 2015
    2
    cout流的执行顺序,C++未定义,取决于编译器....
    大部分情况是反直觉的从左到右
    这样
    cout <<" "<<tail<<" "<<head<<find(a,k)<<endl;
    就好了....
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1214 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 23:41 · PVG 07:41 · LAX 15:41 · JFK 18:41
    ♥ Do have faith in what you're doing.