gpt4 book ai didi

c - 尝试改变指针值

转载 作者:行者123 更新时间:2023-11-30 18:31:37 25 4
gpt4 key购买 nike

我正在用 C 语言进行指针测试,当我尝试这段代码时:

int main()
{

char * b = "abc";
char * c = b;

*c = *(b+1); //problem
printf("%s",c);
}

我在注释行上遇到了错误,我想要打印的是 bbc ,为什么指针分配不起作用?

最佳答案

c 指向一个字符串文字,不允许修改字符串文字,它是 undefined behavior 。这在 C99 标准草案 6.4.5 字符串文字 段落 6 中有所介绍,其中表示(强调我的) :

It is unspecified whether these arrays are distinct provided their elements have the appropriate values. If the program attempts to modify such an array, the behavior is undefined.

因此该程序的行为是不可预测的。

关于c - 尝试改变指针值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21734893/

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