|
发表于 2006-1-14 20:44:56
|
显示全部楼层
1)在你的第一段程序里,
s2 = "It's modified!";
并不是改变s2所指向的内存的内容,而是改变了s2,使s2指向了新的地址,就是"It's modified!"
Post by aishen944
在c语言里
int main() {
const char* s1 = "test";
char *s2 = s1;
s2 = "It's modified!";
printf("%s\n",s1);
}
out: It's modified!;
这样也可以吗? 照我的理解岂不是const限定符在c语言里只是摆设一个
在c++里
int main() {
const char* s1 = "test";
char* s2 = s1;
...
}
这样编译通不过,说不能从const char* 转换到char*
再者
int main() {
const char* s1 = "test";
char* s2 = (char*) s1;
s2 = "It's modified!";
cout << s1 << endl;
cout << s2 << endl;
}
out:test
It's modified!
这次强制转换并编译通过,可是s1的值并没有改变!!
小弟还是新手!! 请大家赐教!!! |
|