我有变数
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