//在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;
}
//结合黄瓜兄意思
#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;
}