Вверх ↑
Этот топик читают: Гость
Ответов: 497
Рейтинг: 16
#1: 2017-02-26 12:27:26 ЛС | профиль | цитата
У меня есть var1 var2 var3 и мне нужно в цикле у все 3 записать рандомные числа. первое что пришло в голову "var" + i но я в си относительно мало погружен а поиск ничего не дал. нужен аналог getcomponent или подлбное.

Редактировалось 3 раз(а), последний 2017-02-26 13:05:09
карма: 1
        ]  
0
Ответов: 1731
Рейтинг: 68
#2: 2017-02-26 12:51:33 ЛС | профиль | цитата
RAWY_EX, я так понял вы хотите динамически формировать имена переменных?
карма: 1

0
Ответов: 497
Рейтинг: 16
#3: 2017-02-26 13:03:38 ЛС | профиль | цитата
Cosinus, именно.
карма: 1
        ]  
0
Ответов: 1731
Рейтинг: 68
#4: 2017-02-26 13:13:26 ЛС | профиль | цитата
RAWY_EX, а в чем смысел? Почему бы не использовать массив?
карма: 1

0
Ответов: 497
Рейтинг: 16
#5: 2017-02-26 13:34:18 ЛС | профиль | цитата
Курсач
карма: 1
        ]  
0
Ответов: 1731
Рейтинг: 68
#6: 2017-02-26 13:48:32 ЛС | профиль | цитата
RAWY_EX, На С++ такого сделать нельзя по той причине, что информация об именах после сборки в релизе выполняемой программе просто отсутствует.
карма: 1

0
Ответов: 1841
Рейтинг: 369
#7: 2017-02-26 14:40:54 ЛС | профиль | цитата
Если в рантайме - только контейнеры (std::map).
Если на этапе компиляции - шаблоны.
Тут нет рефлексии, всё по хардкору .
карма: 1
0
Разработчик
Ответов: 4698
Рейтинг: 426
#8: 2017-02-26 18:11:25 ЛС | профиль | цитата

int var1, var2, var3;
int *vars[3] = {&var1, &var2, &var3};
for (int i = 0; i < 3; ++i){
*vars[i] = rand();
}
карма: 10
0
Разработчик
Ответов: 4698
Рейтинг: 426
#9: 2017-02-26 21:43:37 ЛС | профиль | цитата
А в C++11 можно и так:

int var1, var2, var3;
for (auto &v : {&var1, &var2, &var3}){
*v = rand();
}
карма: 10
0
9
Сообщение
...
Прикрепленные файлы
(файлы не залиты)