”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 在C和C++中,为什么不能直接赋值数组,但在结构体中可以?

在C和C++中,为什么不能直接赋值数组,但在结构体中可以?

发布于2025-04-18
浏览:897

Why Can't I Directly Assign Arrays in C and C  , But I Can Within Structs?
在C和C

最初,C中的数组被模型为记忆中的指针,被称为“煮熟的数组”。当引入结构时,对结构内的阵列进行了不同的处理,以确保记忆安全。这允许在结构内分配成员的数组,而不会损害与现有代码的兼容性。相比之下,C在C的原始设计中不支持结构以外的数组的分配。这是由于关注指针重新启动以及声称为函数参数的数组的尺寸信息的缺乏。为了避免引入错误和兼容性问题,首选使用memcpy的明确分配。,但是,正如路德·布里塞特(Luther Blissett)所指出的那样,C关于结构分配的规范明确允许包含的数组的成员分配。这是设计的意外副作用,但它被接受是一种促进在结构内复制数据而不会破坏既定模式的方式。

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3