我有变数

int v1, v2;

我有两点建议:
int *ptr1, *ptr2;

以及一系列指针
int *array[2] = {ptr1, ptr2};

可以使用指针数组更改ptr1来执行类似于ptr1 = &v2
array[0] = &v1;(我知道这个记录是错误的,但我的意思是将新值写入ptr1指针的想法)

最佳答案

不能用int* [](指针数组)来完成,因为array的元素只是一个副本,所以对元素的任何修改都与原始指针无关。所以array[0] = &v1;不会改变ptr1
您可以改用int** [](指针到指针的数组),例如。

int **array[2] = {&ptr1, &ptr2};

然后
*array[0] = &v1;  // this will make ptr1 point to v1

09-17 18:09
查看更多