我有变量
int v1, v2;
我有两个指点:
int *ptr1, *ptr2;
和一个指针数组
int *array[2] = {ptr1, ptr2};
可以使用指针数组更改ptr1以执行ptr1 = &v2
array[0] = &v1;
(我知道这条记录错了,但我的意思是在ptr1指针中写入新值)
答案 0 :(得分:3)
你不能用int* []
(指针数组)来做,因为array
的元素只是一个副本,那么对元素的任何修改都与它无关。原始指针。因此array[0] = &v1;
无法更改ptr1
。
您可以使用int** []
(指向指针的数组),例如
int **array[2] = {&ptr1, &ptr2};
然后
*array[0] = &v1; // this will make ptr1 point to v1