测试代码:
#include "stdafx.h"
#include <string>
#include <time.h>
#include <iostream>
using namespace std;
string str = "123";
std::string& f()
{
str = "123";
str = "123";
str = "123";
str = "123";
str = "123";
str = "123";
str = "123";
str = "123";
str = "123";
str = "123";
return str;
}
char buf[32];
char * f2()
{
strcpy(buf, "123");
strcpy(buf, "123");
strcpy(buf, "123");
strcpy(buf, "123");
strcpy(buf, "123");
strcpy(buf, "123");
strcpy(buf, "123");
strcpy(buf, "123");
strcpy(buf, "123");
strcpy(buf, "123");
return buf;
}
int main()
{
int num = 1000000;
cout << clock() << endl;
for (int i = 0; i < num; ++i)
{
f();
}
cout << clock() << endl;
for (int i = 0; i < num; ++i)
{
f2();
}
cout << clock() << endl;
string i;
cin >> i;
return 0;
}
输出结果:
126
4065
4108