首页 > 解决方案 > 你能声明一个地址不变但元素可变的数组吗?

问题描述

C 编程语言

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

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

标签: carraysconstantsmemory-addressmutable

解决方案


这定义了所有非常量元素的数组。创建数组后,它位于固定位置。

如果你想要一个指向可变值的常量指针数组(不能指向任何其他值,而不是用于初始化它们的值),那么(也许)使用这个:

#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


推荐阅读