gpt4 book ai didi

c - 为什么分配给一个字符串的指针不会将原始字符串作为一个整体来操作?

转载 作者:太空宇宙 更新时间:2023-11-04 00:29:23 25 4
gpt4 key购买 nike

示例代码为:

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"

Pointer diagram

希望这能为您解决问题。如您所见,stringy 保持不变。

关于c - 为什么分配给一个字符串的指针不会将原始字符串作为一个整体来操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33223538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com