你能声明一个地址不变但元素可变的数组吗?
Can you declare an array with constant address but mutable elements?
C 编程语言
定义指向非常量(即可变)值的常量指针并不少见。因此,如果您不希望数组移动,但其内容会发生变化:
- 你能定义一个具有常量 (const) 地址但可变元素的数组吗?
- 如果是,那又如何?
定义了所有非常量元素数组。创建数组后,它位于固定位置。
如果你想要一个指向 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
C 编程语言
定义指向非常量(即可变)值的常量指针并不少见。因此,如果您不希望数组移动,但其内容会发生变化:
- 你能定义一个具有常量 (const) 地址但可变元素的数组吗?
- 如果是,那又如何?
定义了所有非常量元素数组。创建数组后,它位于固定位置。
如果你想要一个指向 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