将指针写入指针数组

时间:2017-05-18 07:44:38

标签: c arrays pointers

我有变量

int v1, v2; 

我有两个指点:

int *ptr1, *ptr2;

和一个指针数组

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

可以使用指针数组更改ptr1以执行ptr1 = &v2

之类的操作

array[0] = &v1;(我知道这条记录错了,但我的意思是在ptr1指针中写入新值)

1 个答案:

答案 0 :(得分:3)

你不能用int* [](指针数组)来做,因为array的元素只是一个副本,那么对元素的任何修改都与它无关。原始指针。因此array[0] = &v1;无法更改ptr1

您可以使用int** [](指向指针的数组),例如

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

然后

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