为什么字符串里的字符不能自减呢?

发布时间:2024-05-19 08:46 发布:上海旅游网

问题描述:

int main()
{
char *g="sdhgie";
g[2]--;
cout<<g;
return 0;
}
就会出错,但是char *g改成char g[7]就对了

问题解答:

char *g="sdhgie";这种写法会使"sdhgie"这个字符串常量被放在静态数据区,常量是无法修改的。

char *g="sdhgie";这里的"sdhgie"是常量,g是指向常量,所以里面的内容不能改变的。

因为char * g 和 char g[] 不同,两者使用的内存区是不同的,前者在代码段,后者在数据段!

热点新闻