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

Массив и указатель - C++

Восстановить пароль Регистрация
 
Ryuk
 Аватар для Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 869
04.05.2013, 09:29     Массив и указатель #1
При компиляции кода, приведенного ниже, вывод происходит со второго числа. Почему?
C++
1
2
3
4
5
6
7
8
int mass[] = {1, 2, 3, 4, 5, 6};
    int *pmass = mass;
 
    for (int i(0); i <= 5; i++) 
    {
        *pmass++;
        cout << *pmass << endl;
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
faLek
99 / 100 / 7
Регистрация: 06.03.2012
Сообщений: 478
04.05.2013, 10:24     Массив и указатель #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdafx.h"
#include <iostream>
#include <iomanip>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int mass[] = {1, 2, 3, 4, 5, 6};
    int *pmass = mass;
 
    for (int i = 0; i <= 5; i++) 
    {
        cout << setw (3)<<*pmass;
         *pmass++;
    }
    cout<<endl;
 
    system ("pause");
    return 0;
}
daslex
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
04.05.2013, 10:38     Массив и указатель #3
Цитата Сообщение от Ryuk Посмотреть сообщение
Почему?
потому как вы сразу смещаете указатель на начало массива и только потом начинаете выводить элементы.

C++
1
2
 cout << *pmass << endl; //Сначала Вывести элемент
 *pmass++; //потом Сместить указатель
Ryuk
 Аватар для Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 869
04.05.2013, 11:34  [ТС]     Массив и указатель #4
daslex, выдает в конце лишнее число
Убежденный
Системный программист
 Аватар для Убежденный
14209 / 6224 / 987
Регистрация: 02.05.2013
Сообщений: 10,368
Завершенные тесты: 1
04.05.2013, 11:50     Массив и указатель #5
Видимо, подразумевалось что-то вроде такого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int main()
{
    using namespace std;
 
    int mass[] = {1, 2, 3, 4, 5, 6};
    int *pmass = mass;
 
    for (int i = 0; i < 6; ++i) 
    {
        cout << *pmass++ << endl;
    }
 
    return 0;
}
daslex
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
04.05.2013, 11:59     Массив и указатель #6
Ryuk,

Не по теме:

faLek вам написал то же, что я вам сказал. Что-то вы невнимательно делаете. Скорее всего в знаках <= и < с числом после знака

Yandex
Объявления
04.05.2013, 11:59     Массив и указатель
Ответ Создать тему
Опции темы

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