1.char* 和 char[]分配空间位置的区别
在不new的情况下,使用char* 和 char[]=一个字符串,分配的空间会有区别,char*在常量区,char[]在栈上。
#include <iostream>
#include <string>
const char* returnstring() {
// return "test1"; // 情况1,可正常返回
const char* str1 = "test2"; // 情况2,可正常返回
// return str1;
const char str2[] = "test3"; // 情况3,不可正常返回
return str2;
}
int main()
{
const char* test= returnstring();
std::cout << test << std::endl;
}
情况1和情况2,空间再常量区上,情况3,空间在栈上,返回后被释放。
2.型别推导的区别
见effective modern c++