函数的参数a如果是指针类型(quote1函数所示),用在函数内用new为a分配空间,那么在主函数或其他主调函数里面传进来的参数不会受到影响,也就是不会为传进来的指针参数分配空间,如果要为传进来的指针参数分配空间,应当使用指针引用类型参数(quote2函数所示)
//参数a为指针类型
void quote1(char* a)
{
a=new char[5];
memcpy(a,"1234",4);
a[4]='\0';
}//参数a为指针引用类型
void quote2(char* &a)
{
a=new char[5];
memcpy(a,"1234",4);
a[4]='\0';
}void main(){
char *b1="4321";
char *b2="4321";
quote1(b1);
std::cout<<b1<<std::endl;quote2(b2);
std::cout<<b2<<std::endl;}
结果输出为:4321
1234