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

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

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

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

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

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

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

Что быстрее? Обращение к элементу массива или к элементу структуры? - C++
Обращение к элементу массива или к элементу структуры? Экспериментирую с кодом и получается примерно одинаково. Что интересно, время на...

Обращение к элементу массива - C++
Как мне обратиться к последнему элементу массива? например: Array // i = 0 тут нужно что бы -1 был последним т.е N-1 //можно ли с...

Обращение к элементу массива из строк - C++
Здравствуйте! Имеется такой код: string mesiaci = //Massiv iz strok { &quot;Ianvar'&quot;, &quot;Fevral'&quot;, &quot;Mart&quot;, &quot;Aprel'&quot;, ...

Организовать обращение к элементу массива в классе - C++
Есть класс: class Graf { public: double **M; double MT; Graf(){}; ~Graf(){}; Graf(int n){

Обращение к элементу массива через адрес - C++
#include &quot;a.h&quot; #include &lt;iostream&gt; #include&lt;stdio.h&gt; using namespace std; void vvod(float mas,int n); void calc(float...

Обращение к элементу динамического массива структур - C++
Само задание: http://cs412722.vk.me/v412722398/4e77/fUkq93u2HDE.jpg пока написал только это: #include &lt;iostream&gt; using namespace std;...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
modwind
52 / 52 / 1
Регистрация: 09.03.2012
Сообщений: 101
21.07.2012, 18:17 #2
Ничего полезного. Первые 2 числа игнорируются, берётся последнее, то есть 5.
1
gmb124
8 / 4 / 1
Регистрация: 11.04.2012
Сообщений: 54
21.07.2012, 18:25  [ТС] #3
Почему так? Можете объяснить или сказать что почитать?
0
modwind
52 / 52 / 1
Регистрация: 09.03.2012
Сообщений: 101
21.07.2012, 18:32 #4
Любые команды можно перечислять через запятую. Тогда они выполняются последовательно слева направо и берётся результат последней.
0
gmb124
8 / 4 / 1
Регистрация: 11.04.2012
Сообщений: 54
21.07.2012, 18:35  [ТС] #5
Как вы это определили? Почему результат только последней, а остальные куда деваются?
0
modwind
52 / 52 / 1
Регистрация: 09.03.2012
Сообщений: 101
21.07.2012, 18:39 #6
Ну, такой язык программирования.
http://www.c-cpp.ru/books/operator-zapyataya
0
nameless
Эксперт C++
334 / 298 / 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.
1
Endiff
31 / 31 / 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.

0
gmb124
8 / 4 / 1
Регистрация: 11.04.2012
Сообщений: 54
21.07.2012, 18:47  [ТС] #9
Не по теме:
Почему не стоит писать void у main, если ничего не нужно чтобы возвращал main?
0
Endiff
31 / 31 / 1
Регистрация: 19.05.2012
Сообщений: 67
21.07.2012, 18:50 #10
Цитата Сообщение от gmb124 Посмотреть сообщение
Не по теме:
Почему не стоит писать void у main, если ничего не нужно чтобы возвращал main?
Функция main возвращает нулевое значение при успешном завершении программы, а если там void, то как же объяснить, нормально завершилась-то работа? Или, например, при возникновении ошибки возвращается не нулевое значение, но как же его вернуть? Так что, лучше написать int, чем void, и писать короче, и на душе спокойней. Таким образом ты можешь отследить ошибку.
0
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.07.2012, 19:11 #11
Цитата Сообщение от Endiff Посмотреть сообщение
Функция main возвращает нулевое значение при успешном завершении программы, а если там void, то как же объяснить, нормально завершилась-то работа? Или, например, при возникновении ошибки возвращается не нулевое значение, но как же его вернуть? Так что, лучше написать int, чем void, и писать короче, и на душе спокойней. Таким образом ты можешь отследить ошибку.
int main() - стандарт. И точка.
0
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[])
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
21.07.2012, 19:19 #13
soon имел ввиду, что по стандарту main обязана возвращать знаковое целое.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.07.2012, 19:19
Привет! Вот еще темы с ответами:

Обращение ко второму элементу массива указателей на строки - C++
Добрый день. Не получается обратиться ко второму элементу: #include &lt;stdio.h&gt; int main(void) { char **ss = { &quot;Run away&quot;, ...

Обращение к элементу массива (массив как поле класса) - C++
есть класс с массивом class ArrayPixel { public: byte*** pixel; ArrayPixel(int, int); ~ArrayPixel(void); private:

Задача Таблица. За одно обращение к каждому элементу массива необходимо каждый элемент заменить ближайшим большим следующим за ним - C++
Не могу решить задачу( В массиве А размера n за одно обращение к каждому элементу массива необходимо каждый элемент заменить ближайшим ...

Обращение к элементу матрицы - C++
как зделать операцию A template &lt;class T&gt; class matrix{ T **mat; int n, m; public: matrix(int a, int b); void...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.07.2012, 19:19
Ответ Создать тему
Опции темы

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