先贴代码,总结以后再写,和5中内存分配方式密切相关
PS: str 返回整个字符串,str[0],*str返回首字符h
char *strA(){ char str[]="hello!"; //局部数组,局部变量, str存在栈区 return str; //局部变量不能传值,估计会成为野指针 //函数返回局部变量的地址,当被调用完成时,str就释放了,因此返回结果是不确定的且不安全的 } char *strA2(){ char *str = "hello2!";//字符串在常量区, str在“全局”吗??应该是 //str 返回整个字符串,str[0],*str返回首字符h cout << *str <<str << str[0] <<endl; return str; } char *strA3(){ static char str0[] = "hello3!!";//加了个static, str由栈区-->静态区(即全局区) return str0; }