关于char *和char [ ]

来源:互联网 发布:360浏览器优化版 编辑:程序博客网 时间:2024/06/06 01:00
//在vc6.0   和.net下   通过
//结合黄瓜兄意思
#include <iostream>
using   namespace   std;

void   main()
{
char   s1[]   =   "aaaaaaaaaaaaaaa ";  
//用常量区有 "aaaaaaaaaaaaaaa "   栈上的S1也被初始化为 "aaaaaaaaaaaaaaa ",也就是
//上边黄瓜兄说的在内存中实际上有两份 "aaaaaaaaaaaaaaa "。S1可以修改。

char   *s2   =   "bbbbbbbbbbbbbbbbb ";  
//只在栈上分配一个指向常量区的指针。S2不可修改。

s1[0]   =   'b ';//修改时,修改的是栈上的数据
//*(s2+0)   =   'a ';//有这句时,   编译无错,但执行出错   //修改的是常量区数据,故出错
cout < <s1[0] < <endl;
}