一个关于字符指针的奇怪问题!
************************************
问题如下,先看两段代码:
代码一:
#include " stdio.h "
void exchange( char * s1, char * s2);
void main()
{
char * str = " abc " ;
exchang(str,str);
}
void exchange( char * s1, char * s2)
{
char temp;
temp =* s1;
* s1 =* s2;
* s2 = temp;
}
#include " stdio.h "
void exchange( char * s1, char * s2);
void main()
{
char * str = " abc " ;
exchang(str,str);
}
void exchange( char * s1, char * s2)
{
char temp;
temp =* s1;
* s1 =* s2;
* s2 = temp;
}
代码二:
#include " stdio.h "
void exchange( char * s1, char * s2);
void main()
{
char str[ 10 ] = " abc " ;
exchang(str,str);
}
void exchange( char * s1, char * s2)
{
char temp;
temp =* s1;
* s1 =* s2;
* s2 = temp;
}
#include " stdio.h "
void exchange( char * s1, char * s2);
void main()
{
char str[ 10 ] = " abc " ;
exchang(str,str);
}
void exchange( char * s1, char * s2)
{
char temp;
temp =* s1;
* s1 =* s2;
* s2 = temp;
}
**********************
问题:为什么代码一执行会出错,而代码二却不会呢?
求解答,自己没法理解!