gpt4 book ai didi

c - 如何给属于结构体的常量变量赋值?

转载 作者:行者123 更新时间:2023-11-30 19:54:38 25 4
gpt4 key购买 nike

struct temp{
const int i;
};

如何在 main() 函数中初始化变量“i”?

最佳答案

您不能将任何内容分配给常量对象。常量对象只能在声明时初始化,如下所示

struct temp t = { 5 };

即你只有一次机会。如果您错过了初始化一个常量对象的机会,那么您就不走运了 - 该对象将永远保持未初始化状态。

因此,在通常非常量的结构对象中创建常量字段通常不是一个好主意,除非您真的知道自己在做什么。

这就是它的理论。

在实践中,有时您可能会看到人们诉诸各种“技巧”,而忽略了该字段的常量性。例如,可以使用memcpy“分配”整个结构。在 C 语言的某些情况下,您别无选择执行类似的操作(例如,使用 malloc 对象,因为 C 语言没有提供在此类上下文中提供初始值设定项的方法)。

同样,C 语言不太适合处理此类类型,这就是为什么它们只能在计划良好的上下文中使用。

关于c - 如何给属于结构体的常量变量赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27488790/

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