to xiaocai0001(萧筱雨) :
如果你承认<<c++ primier>> 3rd edition,这本书是遵循标准的话,那你可以在其中文版(潘爱民译)的p.331的第4行找到这样的一段话:
在全局域中定义的对象如果没有指定显式的初始值则该存储区被初始化为0 因此
下面两个定义中var1 和var2 有相同的初始值0
int var1 = 0;
int var2;
英文原版中这段话相应的位置在p.392:
An object defined in global scope without an explicit initializer is guaranteed to have its storage initialized
to 0. Thus, in the following two definitions, both var1 and var2 have an initial value of 0:
int var1 = 0;
int var2;
#include<iostream>
using namespace std;
int k;
int fun()
{
return k++;
}
int main()
{
int x=fun() ;
int y=fun();cout<<x<<" "<<y;
}
这样输出为0 1;
应该是从左到右吧!至于cout<<fun()<<" "<<fun();输出为1 0就不知道是什么原因啦,下次问问老师去