|
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;
- }
复制代码
|
|