指向字符串的指针为何不能用来修改此字符串

#include<iostream>
using namespace std;
int main()
{
    char a1[]="hello word!";
    char *p1="hello word!";
//    a1[2]='E';
//    *(p1++) = 'E';
    for(int i=0; a1[i]!='\0';i++)
    {
        cout<<a1[i];
    }
    cout<<endl;
    
    for(int i=0; *(p1+i)!='\0';i++)
    {
        // *(p1+i) = 'E'; //error
        cout<<*(p1+i);
    }
    cout<<endl;
    return 0;
}

http://bbs.csdn.net/topics/390725475

http://blog.sina.com.cn/s/blog_68ff96b70101him1.html

 

C程序设计语言p90. p1 是一个指向字符串常量的指针,如果试图修改字符串的内容,结果是没有定义的。

posted @ 2015-04-03 11:14  cnblogshnj  阅读(202)  评论(0)    收藏  举报