一次编程中无意碰见的问题
#include<iostream>
using namespace std;
void main()
{
//Part1
char *a=new char[7];
a[0]='x';
a[1]='i';
a[2]='e';
a[3]='x';
a[4]='i';
a[5]='e';
a[6]='\0';
*a='h';
cout<<a<<endl;
//Part2
char *b="xiexie";
*b='h';
cout<<b<<endl;
//Part3
char c[]="xiexie";
*c='h';
cout<<c<<endl;
//Part4
char *d=new char[7];
d="xiexie";
*d='h';
cout<<d<<endl;
}
其中Part1跟Part4有什么区别呢? 为什么Part4运行有错误? Part2跟Part3又有啥区别? 为什么Part2运行有错?