您可以声明一个具有固定地址但可变元素的数组吗?

时间:2018-09-15 19:44:23

标签: c arrays const memory-address mutable

C编程语言

定义指向非常量(即可变)值的常量指针并不少见。因此,如果您不希望数组发生移动,但是数组的内容会发生变化:

  1. 您可以定义一个具有恒定(const)地址但可变元素的数组吗?
  2. 如果是,那么如何?

1 个答案:

答案 0 :(得分:3)

这定义了所有个非恒定元素数组。创建阵列后,它将位于固定位置。

如果您想要一个指向 mutable 值的常量指针数组(除了用于初始化它们的指针之外,不能指向其他任何值),则(也许)使用以下方法:

#include <stdio.h>

int main(void) 
{
    int i=0;
    int j=9;
    int *const ptr[2]={&i,&j};
    *ptr[0]=3;
    printf("%d %d",*ptr[0],*ptr[1]);
    return 0;
}

输出: 3 9