示例代码为:
void main()
{
char stringy[] = "I am so dumb what is wrong with me";
char *pStringy = stringy;
pStringy = "please be gentle";
printf("%s", stringy);
}
输出为:
I am so dumb what is wrong with me
(这可能是最基本的,但我不明白,也找不到问题所在(可能是因为我不知道怎么表达)
我想知道为什么在初始化pStringy之后,pStringy和stringy共享同一个内存地址时,输出不是“请温柔一点”。
相反,对单个值(但不是数组)执行完全相同的操作就像我所期望的那样,并且原始变量中的原始值会发生更改。
最佳答案
指针指向内存的其他部分它们不包含或拥有它们指向的东西。
这是一个绘制不好的MS绘图草图,它描绘了计算机内存的前后线条:
pString = "please be gentle"
希望这能帮你解决问题如您所见,
stringy
保持不变。