gpt4 book ai didi

字符数组初始化

转载 作者:太空宇宙 更新时间:2023-11-04 05:18:47 24 4
gpt4 key购买 nike

看下面的代码片段

char ch[10] = "hello"; // is ok

但是

char ch[10];
ch = "hello"; // showing lvalue error

按照数组衰减成指针的概念应该是可以的。为什么这里的ch没有衰减成char *呢?请说明两者的区别。

最佳答案

char ch[10] = "hello";

是初始化,并且是标准允许的。它实际上是“给我一个 10 个字符的数组并用 C 字符串 "hello" 填充它。

char ch[10];
ch = "hello";

是(尝试)赋值,是不允许的。你可以这样做:

char *ch;
ch = "hello";

但是你最终得到一个你不允许修改的ch(关于你是否被允许修改字符串常量是未定义的行为)。

初始化时间后对数组进行“赋值”的一种方法是:

char ch[10];
strcpy (ch, "hello");

关于字符数组初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21966685/

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