【发布时间】:2022-01-09 01:26:54
【问题描述】:
我知道char* pString 是只读的,因此pString[0]='A' 会给出分段错误,但为什么pString2[0]='A' 在下面的代码中工作:
char* pString = "abcdefg";
char tmpStr[80];
strcpy(tmpStr, pString);
char* pString2 = tmpStr;
//pString[0] = 'A'; // gives segmentation error since string literal is read-only.
pString2[0] = 'A'; // why this one works?
【问题讨论】:
-
pString2指向(非常量)数组tmpStr的第一个元素。您可以随意修改tmpStr的内容,直接使用数组或通过像pString2这样的指针。
标签: arrays c pointers string-literals