69,371
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
int main()
{
char *c = "hello world ";
*c = 't'; // false why?
char d[] = "hello world ";
d[0] = 't'; // ok why?
return 0;
}
#pragma comment(linker,"/SECTION:.rdata,RW")
//加这句可以让常量区可写,后果自负!
char *c = "hello world ";
//这样说吧, 这里是把"hello world"的地址赋值给了p
//让p指向了它的首地址,它本上是常量字符串,存放在静态区,只可读不可更改
char d[] = "hello world ";
//这里是初始化d[]数组,把“hello world”这静态区的内容赋值给d[];
//d数组本身在栈区,只是”hello world“拷贝一份给到d数组而已
//改变的是栈区的值而已, 实际原始的值没有改变
char *c = "hello world ";
*c = 't'; // false why?
// 常量字符串, 存放在静态去,内容不可更改
char d[] = "hello world ";
d[0] = 't'; // ok why?
// 一般情况下是栈区, 内容可改
//推荐楼主看看内存管理这方面的知识