Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Dmirtiy Vovk
4 / 4 / 0
Регистрация: 07.08.2014
Сообщений: 164
#1

Переменная в качестве номера элемента массива. Array[Var] - C++

07.08.2014, 13:38. Просмотров 1251. Ответов 40
Метки нет (Все метки)

Мне нужно изменяя некую переменную Var обращатся к различным элементам массива Array[Var].

Компилятор не выдаёт ошибок, но код выполняется не так, как задумано,

Например
C++
1
SomeVar = Array[Var] // в лучшем случае получается что SomeVar принимает значение Var.
Короче не работает, и как я понимаю и не должно.

Помогите придумать выход из ситуации, иначе я просто разочаруюсь в этом очень сложном и очень безпомощьном языке С++.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.08.2014, 13:38     Переменная в качестве номера элемента массива. Array[Var]
Посмотрите здесь:
C++ Переменная в качестве размера массива
Массивы (переменная в качестве размера для массива) C++
Определить номера минимального элемента массива и элемента, являющегося минимальным без учета этого элемента. C++
Проверка номера элемента массива на простоту C++
C++ Зачем взятие адреса нулевого элемента массива, если сама переменная и так его содержит?
C++ Нахождения номера самого большего элемента массива целых чисел
C++ Составить программу для нахождения номера максимального элемента массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Le_Mon
0 / 0 / 0
Регистрация: 08.08.2014
Сообщений: 16
08.08.2014, 09:39     Переменная в качестве номера элемента массива. Array[Var] #31
Да, код рабочий
DrOffset
7062 / 4203 / 949
Регистрация: 30.01.2014
Сообщений: 6,970
08.08.2014, 13:31     Переменная в качестве номера элемента массива. Array[Var] #32
Цитата Сообщение от Dmirtiy Vovk Посмотреть сообщение
При том что в микросхеме 2кб памяти
Тогда volatile поставь.
C++
1
volatile int var = 0;
и т.д.
Dmirtiy Vovk
4 / 4 / 0
Регистрация: 07.08.2014
Сообщений: 164
09.08.2014, 05:08  [ТС]     Переменная в качестве номера элемента массива. Array[Var] #33
DrOffset, Да , это помогло, а еще помогает полное отключение оптимизации, но тогда библиотека delay.h предупреждает о неточности счета, как я понимаю...

Пока не закрываю тему =)
DrOffset
7062 / 4203 / 949
Регистрация: 30.01.2014
Сообщений: 6,970
09.08.2014, 11:41     Переменная в качестве номера элемента массива. Array[Var] #34
Dmirtiy Vovk, я все-таки буду настаивать на том, что лучший вариант - это избавиться от глобальных переменных вообще. В твоем варианте это можно сделать вполне.
Dmirtiy Vovk
4 / 4 / 0
Регистрация: 07.08.2014
Сообщений: 164
09.08.2014, 12:38  [ТС]     Переменная в качестве номера элемента массива. Array[Var] #35
DrOffset, Я попробую, но у меня с ними напряженные отношения.
Зачем они вобще нужны если работают только внутри блока?
Technogen
9 / 9 / 0
Регистрация: 14.02.2011
Сообщений: 23
09.08.2014, 13:10     Переменная в качестве номера элемента массива. Array[Var] #36
Я извиняюсь, просто тут обсуждают тему с массивами, просто хочу спросить ,кто знает,я читаю книгу С,Дэвис. C++ для чайников 5-е издание, так вот там на странице 96 автор пишет ,что если массив инициализировать как
C++
1
floatArray[25] = {1.0};
то все 25 элементов массива инициализируются как 1.0.Но после компиляции явижу только первый т.е. нулевой индекс как 1.0, а остальные 24 идут как 0.Я что то не пойму, вроде же остальные со слов автора должны идти по 1.0 а не по 0?Или как?Компилятор от Visual studio 2013
Dmirtiy Vovk
4 / 4 / 0
Регистрация: 07.08.2014
Сообщений: 164
09.08.2014, 14:14  [ТС]     Переменная в качестве номера элемента массива. Array[Var] #37
Technogen, Насколько мне извесно , твой компилятор всё правильно делает.

float Array[25] = {1.0,,1.0} // Нулевой элемент будет 1.0 и второй элемент будет 1.0, те что не указаны будут нулями, автор или ты ошибся наверное.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
09.08.2014, 14:47     Переменная в качестве номера элемента массива. Array[Var] #38
Цитата Сообщение от Dmirtiy Vovk Посмотреть сообщение
float Array[25] = {1.0,,1.0}
Такая запись не является допустимой в C++. Нулями инициализируются только последние элементы, пропускать значения нельзя. Это похоже на задание параметров функций по умолчанию. Умолчания могут использовать только для непрерывного набора аргументов с конца списка.
Цитата Сообщение от Technogen Посмотреть сообщение
то все 25 элементов массива инициализируются как 1.0.
Это не правда. Для установки не нулевых значений нужно так или иначе провести явную инициализацию для этих элементов.
Technogen
9 / 9 / 0
Регистрация: 14.02.2011
Сообщений: 23
09.08.2014, 18:24     Переменная в качестве номера элемента массива. Array[Var] #39
Цитата Сообщение от Dmirtiy Vovk
автор или ты ошибся наверное.
Вот четко цитата из книги:
Цитата Сообщение от С,Дэвис. C++ для чайников 5-е издание (96-я стр.)
Все элементы массива можно инициализировать одним и тем же значением, указав его
только один раз. Например, далее все 25 элементов массива floatArray инициализируются
значением 1.0.
C++
1
float floatArray[25] = {1.0};
Цитата Сообщение от Tulosba
Это не правда
Я чо так подумал, может думаю раньше в языке так было или компилятор раньше так допускал, книга то старая очень.Автор использовал Dev-C++ 4.9.8.0 (2003-03-26)
Dmirtiy Vovk
4 / 4 / 0
Регистрация: 07.08.2014
Сообщений: 164
09.08.2014, 19:38  [ТС]     Переменная в качестве номера элемента массива. Array[Var] #40
Technogen, Выкинь все книжки, бери и пиши, даже если не знаешь, я вот тоже ничего не знаю))
По-моему лучше искать информацию только для текущей задачи, чем переворачивать учебники.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.08.2014, 20:49     Переменная в качестве номера элемента массива. Array[Var]
Еще ссылки по теме:
Найти и вывести на экран номера первого и последнего минимального элемента одномерного массива C++
C++ Описать процедуру NminMax(A,N,NMin,NMax), находящую номера минимального и максимального элемента массива А
C++ Вычислить сумму элементов массива, порядковые номера которых совпадают со значением этого элемента
Описать процедуру NMinmax(A, N, N Minn, N Max) находящую номера минимального и максимального элемента массива C++
Составить программу для нахождения первого элемента массива меньше десяти и его номера C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
DrOffset
7062 / 4203 / 949
Регистрация: 30.01.2014
Сообщений: 6,970
09.08.2014, 20:49     Переменная в качестве номера элемента массива. Array[Var] #41
Цитата Сообщение от Technogen Посмотреть сообщение
Вот четко цитата из книги:
В книге ошибка. Язык такое не допускал, но в принципе это вполне могло быть расширением компилятора автора книги. Однако описывать поведение языка на основании конкретного компилятора несколько неправильно (или об этом должно быть явно указано). В общем советую противоречивую информацию проверят в нескольких источниках. Так как в книгах (даже авторитетных) могут быть не только ошибки самого автора, но и переводчиков и редакторов.
Yandex
Объявления
09.08.2014, 20:49     Переменная в качестве номера элемента массива. Array[Var]
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru