8 / 4 / 0
Регистрация: 11.04.2012
Сообщений: 54
1

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

21.07.2012, 18:13. Показов 2069. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.07.2012, 18:13
Ответы с готовыми решениями:

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

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

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

Обращение к элементу массива через указатель
Здравствуйте, точно помню, что A и *(A+i) это одно и тоже то вот почему-то не хочет работать...

12
52 / 52 / 2
Регистрация: 09.03.2012
Сообщений: 101
21.07.2012, 18:17 2
Ничего полезного. Первые 2 числа игнорируются, берётся последнее, то есть 5.
1
8 / 4 / 0
Регистрация: 11.04.2012
Сообщений: 54
21.07.2012, 18:25  [ТС] 3
Почему так? Можете объяснить или сказать что почитать?
0
52 / 52 / 2
Регистрация: 09.03.2012
Сообщений: 101
21.07.2012, 18:32 4
Любые команды можно перечислять через запятую. Тогда они выполняются последовательно слева направо и берётся результат последней.
0
8 / 4 / 0
Регистрация: 11.04.2012
Сообщений: 54
21.07.2012, 18:35  [ТС] 5
Как вы это определили? Почему результат только последней, а остальные куда деваются?
0
52 / 52 / 2
Регистрация: 09.03.2012
Сообщений: 101
21.07.2012, 18:39 6
Ну, такой язык программирования.
http://www.c-cpp.ru/books/operator-zapyataya
0
Эксперт С++
342 / 306 / 36
Регистрация: 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
31 / 31 / 3
Регистрация: 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
8 / 4 / 0
Регистрация: 11.04.2012
Сообщений: 54
21.07.2012, 18:47  [ТС] 9
Не по теме:
Почему не стоит писать void у main, если ничего не нужно чтобы возвращал main?
0
31 / 31 / 3
Регистрация: 19.05.2012
Сообщений: 67
21.07.2012, 18:50 10
Цитата Сообщение от gmb124 Посмотреть сообщение
Не по теме:
Почему не стоит писать void у main, если ничего не нужно чтобы возвращал main?
Функция main возвращает нулевое значение при успешном завершении программы, а если там void, то как же объяснить, нормально завершилась-то работа? Или, например, при возникновении ошибки возвращается не нулевое значение, но как же его вернуть? Так что, лучше написать int, чем void, и писать короче, и на душе спокойней. Таким образом ты можешь отследить ошибку.
0
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.07.2012, 19:11 11
Цитата Сообщение от Endiff Посмотреть сообщение
Функция main возвращает нулевое значение при успешном завершении программы, а если там void, то как же объяснить, нормально завершилась-то работа? Или, например, при возникновении ошибки возвращается не нулевое значение, но как же его вернуть? Так что, лучше написать int, чем void, и писать короче, и на душе спокойней. Таким образом ты можешь отследить ошибку.
int main() - стандарт. И точка.
0
52 / 52 / 2
Регистрация: 09.03.2012
Сообщений: 101
21.07.2012, 19:15 12
soon, там ещё могут быть параметры argc и argv.
C++
1
int main(int argc, char *argv[])
0
1180 / 893 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
21.07.2012, 19:19 13
soon имел ввиду, что по стандарту main обязана возвращать знаковое целое.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.07.2012, 19:19
Помогаю со студенческими работами здесь

Обращение к элементу динамического массива структур
Само задание: http://cs412722.vk.me/v412722398/4e77/fUkq93u2HDE.jpg пока написал только это:...

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

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

Обращение ко второму элементу массива указателей на строки
Добрый день. Не получается обратиться ко второму элементу: #include &lt;stdio.h&gt; int main(void) {...

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

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


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru