Можете ли вы поместить переменные в массив, значения которого изменяются в массиве при изменении значения переменной?

#arrays #variables #language-agnostic

#массивы #переменные #не зависит от языка

Вопрос:

 ## Pseudocode
variable1 = 1
variable2 = 2
array = { variable1, variable2 }
print array
## output: {1, 2}
variable1 = 5
variable2 = 6
print array
## desired output: {5, 6}
  

Есть ли какой-либо способ сделать это?
Если есть, пожалуйста, отправьте ответ на выбранном вами языке.

Комментарии:

1. Вопрос типа Make-a-list. Мне кажется, это «неконструктивно» .

Ответ №1:

В C вы можете эмулировать это:

 #include <iostream>
#include <vector>
using namespace std;

int main()
{
    int variable1 = 1;
    int variable2 = 2;
    vector<int*> array = { amp;variable1, amp;variable2 };
    for (auto i = array.begin(); i != array.end();   i)
        cout << **i << endl;
    variable1 = 5;
    variable2 = 6;
    for (auto i = array.begin(); i != array.end();   i)
        cout << **i << endl;
    return 0;
}
  

выводит

 1
2
5
6
  

Комментарии:

1. Это не ограничивается C , любой язык с доступом к указателям может использовать этот метод.

2. @Брайан: да. Кроме того, в таких языках, как Java / C #, вы не можете хранить ссылку на переменную в массиве, вам нужно будет упаковать их в объект контейнера.

3. @Vlad: Какие контейнеры в Java / C # могут содержать ссылки на переменные?