首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不能将int数组写入

不能将int数组写入
EN

Stack Overflow用户
提问于 2020-01-13 14:19:51
回答 1查看 65关注 0票数 2

编译以下程序

代码语言:javascript
运行
复制
int main(void) {
    int const c[2];
    c[0] = 0;
    c[1] = 1;
}

导致错误:指定只读位置‘c’。据我所知,const只适用于c的位置,所以c和c1应该是可变的。为什么会产生这个错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-13 14:22:34

据我了解,

只适用于c的位置。

不是的。无论如何,您不能修改数组的位置。您可能的意思是,如果您有一个int * const,那么这确实是一个指向可修改的int的常量指针。然而,int const c[2];是一个由2个常量ints组成的数组。因此,必须在声明数组时初始化它们:

代码语言:javascript
运行
复制
int const c[2] = {0, 1};

在竞争中:

代码语言:javascript
运行
复制
int main(void) {
    int c[2];
    int* const foo = c;
    foo[0] = 0;
    foo[0] = 1;
    //foo = malloc(sizeof(int)); doesn't work, can't modify foo, as it's constant
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59718439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档