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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
gmb124
8 / 4 / 1
Регистрация: 11.04.2012
Сообщений: 54
#1

Обращение к элементу массива - C++

21.07.2012, 18:13. Просмотров 1275. Ответов 12
Метки нет (Все метки)

Объясните пожалуйста, что происходит в строке помеченной ***

C++
1
2
3
4
5
6
7
 void main(){
    char str[10];
    char ptr[5];
 
    cin >>  str;
    cout <<  str[1,2,5];  //***
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.07.2012, 18:13     Обращение к элементу массива
Посмотрите здесь:

C++ Обращение к определенному элементу списка.
Организовать обращение к элементу массива в классе C++
Обращение к элементу массива через адрес C++
Обращение ко второму элементу массива указателей на строки C++
C++ Задача Таблица. За одно обращение к каждому элементу массива необходимо каждый элемент заменить ближайшим большим следующим за ним
C++ Обращение к элементу динамического массива структур
C++ Обращение к элементу массива из строк
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
modwind
52 / 52 / 1
Регистрация: 09.03.2012
Сообщений: 101
21.07.2012, 18:17     Обращение к элементу массива #2
Ничего полезного. Первые 2 числа игнорируются, берётся последнее, то есть 5.
gmb124
8 / 4 / 1
Регистрация: 11.04.2012
Сообщений: 54
21.07.2012, 18:25  [ТС]     Обращение к элементу массива #3
Почему так? Можете объяснить или сказать что почитать?
modwind
52 / 52 / 1
Регистрация: 09.03.2012
Сообщений: 101
21.07.2012, 18:32     Обращение к элементу массива #4
Любые команды можно перечислять через запятую. Тогда они выполняются последовательно слева направо и берётся результат последней.
gmb124
8 / 4 / 1
Регистрация: 11.04.2012
Сообщений: 54
21.07.2012, 18:35  [ТС]     Обращение к элементу массива #5
Как вы это определили? Почему результат только последней, а остальные куда деваются?
modwind
52 / 52 / 1
Регистрация: 09.03.2012
Сообщений: 101
21.07.2012, 18:39     Обращение к элементу массива #6
Ну, такой язык программирования.
http://www.c-cpp.ru/books/operator-zapyataya
nameless
Эксперт C++
314 / 296 / 14
Регистрация: 16.06.2009
Сообщений: 486
21.07.2012, 18:40     Обращение к элементу массива #7
gmb124, стандарт почитайте, пункт 5.18

A pair of expressions separated by a comma is evaluated left-to-right and the value of the left expression
is discarded.
Endiff
30 / 30 / 1
Регистрация: 19.05.2012
Сообщений: 67
21.07.2012, 18:43     Обращение к элементу массива #8
У запятой самый низкий приоритет, читается слева на право, все правильно, как сказал modwind.
C++
1
2
3
4
5
6
7
void main(){
    char str[10];
    char ptr[5];
 
    cin >>  str;
    cout <<  str[1,2,5];  //***
}
Сначала компилятор смотрит, ага, один, берем, потом двойка, окей, берем, и потом петерка, окей, я её беру. И берет пятый элемент массива.

Не по теме:

На будущее, никогда не пиши void у main.

gmb124
8 / 4 / 1
Регистрация: 11.04.2012
Сообщений: 54
21.07.2012, 18:47  [ТС]     Обращение к элементу массива #9
Не по теме:
Почему не стоит писать void у main, если ничего не нужно чтобы возвращал main?
Endiff
30 / 30 / 1
Регистрация: 19.05.2012
Сообщений: 67
21.07.2012, 18:50     Обращение к элементу массива #10
Цитата Сообщение от gmb124 Посмотреть сообщение
Не по теме:
Почему не стоит писать void у main, если ничего не нужно чтобы возвращал main?
Функция main возвращает нулевое значение при успешном завершении программы, а если там void, то как же объяснить, нормально завершилась-то работа? Или, например, при возникновении ошибки возвращается не нулевое значение, но как же его вернуть? Так что, лучше написать int, чем void, и писать короче, и на душе спокойней. Таким образом ты можешь отследить ошибку.
soon
2537 / 1302 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.07.2012, 19:11     Обращение к элементу массива #11
Цитата Сообщение от Endiff Посмотреть сообщение
Функция main возвращает нулевое значение при успешном завершении программы, а если там void, то как же объяснить, нормально завершилась-то работа? Или, например, при возникновении ошибки возвращается не нулевое значение, но как же его вернуть? Так что, лучше написать int, чем void, и писать короче, и на душе спокойней. Таким образом ты можешь отследить ошибку.
int main() - стандарт. И точка.
modwind
52 / 52 / 1
Регистрация: 09.03.2012
Сообщений: 101
21.07.2012, 19:15     Обращение к элементу массива #12
soon, там ещё могут быть параметры argc и argv.
C++
1
int main(int argc, char *argv[])
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.07.2012, 19:19     Обращение к элементу массива
Еще ссылки по теме:

C++ Обращение к следующему элементу в for-each цикле
Обращение к элементу матрицы C++
C++ Что быстрее? Обращение к элементу массива или к элементу структуры?
C++ обращение к элементу массива (массив как поле класса)
Обращение к элементу массива C++

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

Или воспользуйтесь поиском по форуму:
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
21.07.2012, 19:19     Обращение к элементу массива #13
soon имел ввиду, что по стандарту main обязана возвращать знаковое целое.
Yandex
Объявления
21.07.2012, 19:19     Обращение к элементу массива
Ответ Создать тему
Опции темы

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