关于指针和数组的一个疑问解决方法
关于指针和数组的一个疑问
#include<iostream>
using namespace std;
int main()
{
char *p = "kitty";
p[0] = 'H';
cout << p << endl;
return 0;
}
在visual studio 2005 下运行竟然没出错,直接输出:kitty,求解释!
------解决方案--------------------
貌似编译器做优化, 直接用 "kitty" 来替换 p 了, 变成了 cout << "kitty" << endl;
#include<iostream>
using namespace std;
int main()
{
char *p = "kitty";
p[0] = 'H';
cout << p << endl;
return 0;
}
在visual studio 2005 下运行竟然没出错,直接输出:kitty,求解释!
------解决方案--------------------
貌似编译器做优化, 直接用 "kitty" 来替换 p 了, 变成了 cout << "kitty" << endl;