C++中 string作为参数的传递(string类型的引用 )

2019-09-30  本文已影响0人  ebayboy

string的引用类型可以减少内存拷贝

/* string refer

在传递参数的时候,如果参数是string类型,可以用string类型的引用,减少内存的拷贝。

*/

#include <iostream>

#include <cstring>

using namespace std;

void func(const std::string& str){

cout << "str = " << str << endl;

cout << "address of \"str\" : " << &str << endl;

}

void funcB(const std::string str){

cout << "str = " << str << endl;

cout << "address of \"str\" : " << &str << endl;

}

int main(int agrc, char** argv){

string strInMain= "test";

func(strInMain);

funcB(strInMain);

cout << "strInMain = " << strInMain << endl;

cout << "address of \"strInMain\" : " << &strInMain << endl;

return 0;

}

func没有拷贝变量,而是直接将main中的strInMain的地址传入,所以在func中的参数str的地址和main中strInMain的地址相同。

funcB参数对strInMain进行拷贝,所以参数str的地址为新的内存空间

上一篇下一篇

猜你喜欢

热点阅读