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

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

Войти
Регистрация
Восстановить пароль
 
Al1231
0 / 0 / 0
Регистрация: 29.09.2016
Сообщений: 30
#1

Нюансы работы с указателями: объяснить, что происходит в заданном фрагменте кода - C++

19.11.2016, 16:06. Просмотров 140. Ответов 2

Всем доброго времени суток! Я не до конца разобрался в данной теме.
К примеру, есть такой кусок программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
...
    int N;  
    int *a, *pointer;
 
    cout <<"Введите n"<< endl; 
    cin >> N; 
    cout <<"Введите значение элементов массива "<< endl; 
    a = new int [N]; 
    
    for (pointer=a; pointer-a<N;pointer++) 
    { 
        cin >> *pointer; 
        
    } 
...

"pointer=a" - здесь все понятно, указатель приравнивается индексу нулевого элемента, а дальше, изменяется ли каким-то образом а?
И дальше, то есть pointer-a<N цикл идет до тех пор, пока у нас не кончатся ячейки, выделенные под динамический массив, я правильно понимаю?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2016, 16:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нюансы работы с указателями: объяснить, что происходит в заданном фрагменте кода (C++):

Объяснить, что происходит в заданном фрагменте кода - C++
В подпрограмме Всё предельно ясно кроме одной строки - P.year=y-'0'; Объясните недалёкому что происходит в строке { system(&quot;cls&quot;); ...

Объяснить, что происходит в заданном фрагменте кода - C++
ifstream f(&quot;Базаданных.bd&quot;, ios::binary); f.read((char*)&amp;P,sizeof(P)); do { ...

Объяснить, что происходит в заданном фрагменте кода (шифр Цезаря) - C++
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;sstream&gt; #include &lt;fstream&gt; using...

Очередь на основе массива: объяснить что происходит в заданном фрагменте кода - C++
всем привет. начал разбираться с очередью на с++ и наткнулся на пример. вот фрагмент кода void init(QUEUE *pq) { pq-&gt;first=0; ...

Нюансы синтаксиса: объяснить как работает тернарная операция в заданном фрагменте кода - C++
Всем доброго времени суток! Помогите разобраться с кодом. const char x = {&quot;Jason &quot;, &quot;at your service\n&quot;}; const char * y =...

Объяснить, что происходит в данном фрагменте кода (матрицы) - C++
Вообщем столкнулся с первой проблемой в изучении данного языка (с++). Мой мозг просто отказывается понимать вот эти строчки и их результат....

2
nd2
2322 / 1907 / 671
Регистрация: 29.01.2016
Сообщений: 6,216
19.11.2016, 17:26 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Al1231 Посмотреть сообщение
"pointer=a" - здесь все понятно, указатель приравнивается индексу нулевого элемента
В pointer помещается адрес начала выделенной, через new, памяти.

Добавлено через 1 минуту
Цитата Сообщение от Al1231 Посмотреть сообщение
а дальше, изменяется ли каким-то образом а?
Не изменяется. Для этого и создаётся дополнительный указатель.

Добавлено через 11 минут
Цитата Сообщение от Al1231 Посмотреть сообщение
цикл идет до тех пор, пока у нас не кончатся ячейки, выделенные под динамический массив, я правильно понимаю?
В общем и целом - правильно. Пока значение pointer не выйдет за границу выделенной памяти.
1
Al1231
0 / 0 / 0
Регистрация: 29.09.2016
Сообщений: 30
19.11.2016, 18:47  [ТС] #3
Спасибо большое за подробное объяснение! Раскидали как и хотелось, ответ получен. Благодарю!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2016, 18:47
Привет! Вот еще темы с ответами:

Объяснить что происходит в данном фрагменте кода (вложенные циклы и массивы) - C++
Объясните пожалуйста данный моментfor (int i = 1; i &lt;= a; i++) { if (m == 0) { c = i; while (m == 0) c++; if...

Что происходит в этом фрагменте кода? - C++
В этой части программы создается массив с помощью указателей. Да? Или как это объяснить? Фрагмент программы: A=new float *; for...

Подробно расписать что происходит в данном фрагменте кода - C++
Int() :intez(0) {} Int(int intz) :intez(intz) {} распишите плиз, что где и зачем

Прокомментировать и подробно объяснить, что происходит в каждой строчке кода - C++
#include &lt;ctime&gt; #include &lt;iostream&gt; using namespace std; void Vvod(int* massiv,int n,int p) { int i; if (p==1) { ...


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

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

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