| 
 | 
 
10鱼币 
- #include <iostream>
 
 - using namespace std;
 
  
- char* GetStr()
 
 - {
 
 -     char sz[] = "Hello, C++";
 
 -     return sz;
 
 - }
 
  
- int main()
 
 - {
 
 -     char* p = GetStr();
 
 -     cout<<p<<endl;
 
  
-     return 0;
 
 - }
 
  复制代码 
错误注释如下: 
- #include <iostream>
 
 - using namespace std;
 
  
- char* GetStr()
 
 - {
 
 -     char sz[] = "Hello, C++";  // sz是局部变量,作用范围只在当前函数内部
 
 -     return sz;  // sz在函数返回后就不可见了,return sz并不能把字符串sz的首地址返回给main函数中的p。
 
 - }
 
  
- int main()
 
 - {
 
 -     char* p = GetStr();
 
 -     cout<<p<<endl;
 
  
-     return 0;
 
 - }
 
  复制代码 
建议修改:
 - #include <iostream>
 
 - using namespace std;
 
  
- char* GetStr()
 
 - {
 
 -     static char sz[] = "Hello, C++";  // 将sz是定义为静态变量,作用域为整个程序
 
 -     return sz;  // 静态变量sz在函数返回后可见,return sz可以把字符串sz的首地址返回给main函数中的p。
 
 - }
 
  
- int main()
 
 - {
 
 -     char* p = GetStr();
 
 -     cout<<p<<endl;
 
  
-     return 0;
 
 - }
 
  复制代码 
 
 
 |   
 
 
 
 
 
 |