gpt4 book ai didi

c - 字符数组和字符串指针有什么区别?

转载 作者:行者123 更新时间:2023-11-30 18:13:34 26 4
gpt4 key购买 nike

我在一次采访中被问到。我们如何更改字符数组和指向字符串的指针的值。

这是我的代码片段。

        #include<string.h>
int main()
{
char ch[]="abc";
char *ptr="xyz";
ptr="xyz";

//strcpy(ptr,"xyz") is giving segmentation fault
//ch="ABC"; // is throwing error: incompatible types in assignment

strcpy(ch,"ABC");
return 0;
}

有人可以解释一下当 ch="ABC"抛出错误并且 strcpy(ptr,"xyz") 给出段错误并且 strcpy(ch,"ABC") 正在工作时 ptr="xyz"是如何工作的很好。

最佳答案

在 C 中,不能直接将字符数组和常量字符串等同起来因此您会收到错误

ch = "ABC"

为此目的,您需要 strcpy!

在做的时候

strcpy(ptr, "XYX")

ptr 尚未分配任何内存,因此会出现段错误!

关于c - 字符数组和字符串指针有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23826251/

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