下面代码 f()输出的字符串不是"qqq""www"之类.输出不正常.这是什么原理? gcc 4.8.5
#include<string>
#include<cstdio>
#include<iostream>
using namespace std;
const string &f(){
static int n=0;
static const char* const c[]={"qqq","www","eee","rrr","ttt","yyy","uuu","iii"};
return c[n++];
}
int main(int argc, char** argv)
{
cout << f() << endl;
cout << f() << endl;
cout << f()<< "111" << f() <<endl;
printf("%s%s%s\n",f().c_str(),"222",f().c_str());
printf("%s\n",f().c_str());
printf("%s\n",f().c_str());
return 0;
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.