0 / 0 / 0
Регистрация: 29.09.2016
Сообщений: 55
1

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

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

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

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

Списки: объяснить, что происходит в заданном фрагменте кода
Помогите разобраться в коде, вот код с# public class Node { public string Data {...

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

2
nd2
3434 / 2813 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
19.11.2016, 17:26 2
Цитата Сообщение от Al1231 Посмотреть сообщение
"pointer=a" - здесь все понятно, указатель приравнивается индексу нулевого элемента
В pointer помещается адрес начала выделенной, через new, памяти.

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

Добавлено через 11 минут
Цитата Сообщение от Al1231 Посмотреть сообщение
цикл идет до тех пор, пока у нас не кончатся ячейки, выделенные под динамический массив, я правильно понимаю?
В общем и целом - правильно. Пока значение pointer не выйдет за границу выделенной памяти.
1
0 / 0 / 0
Регистрация: 29.09.2016
Сообщений: 55
19.11.2016, 18:47  [ТС] 3
Спасибо большое за подробное объяснение! Раскидали как и хотелось, ответ получен. Благодарю!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2016, 18:47
Помогаю со студенческими работами здесь

Очередь на основе массива: объяснить что происходит в заданном фрагменте кода
всем привет. начал разбираться с очередью на с++ и наткнулся на пример. вот фрагмент кода void...

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

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

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


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

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

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