c++未解之谜

#include<iostream>
#include<cstring>
using namespace std;

char * reverse_str(char* str)
{
 if(str==NULL) return str;
 char *bstr=str;
 char *estr=str;
 char ch;
 while(*estr!='\0')estr++;
 estr--;
 while(bstr<estr)
 {
  ch=*bstr;
  (*bstr)=*estr; bstr++;
  (*estr)=ch;
  estr--;
 }
    return str;
}
int main()
{
 char *str="12345";
 cout<<reverse_str(str)<<endl;
 int x;

 cin>>x;
 return 0;
}

这个程序不知道哪里出错了。。。。。。。。。。。有时间仔细研究一番


2014-08-12 00-10-00

呵呵,原来是基础知识不行, str指向的是一块常量字符串,不能改变值,

换成 char b[] = "12345";//就ok了

你可能感兴趣的:(C++,c,String,STL,strcpy)