int main() {
char* string = "Hello world";
string[2] = 'd';
printf("%s\n", string);
return 0;
}
int main() {
time_t now;
time(&now);
$
char* time = ctime(&now) + 11;
time[8] = '\0';
printf("%s\n", time);
return 0;
}
就像在第二个示例中一样,我能够为指针修改数组的特定索引,以使用NULL字符终止字符串。但是,对于第一个,我只是尝试将索引2处的字符更改为字母“ d”,但它拒绝打印输出,并且出现了Segmentation Fault错误!
我的猜测是,在第二个例子中,使用&号将内存中地址的内容获取到指针所指向的地方有些细微的差别,但这只是我的猜测。希望有人能给我一个清晰而又不太混乱的解释,这是为什么...谢谢!