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

Работа с указателем на массив в функции (!!!) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
metoflex
4 / 4 / 0
Регистрация: 18.04.2010
Сообщений: 82
18.04.2010, 22:54     Работа с указателем на массив в функции (!!!) #1
Я написал программу по сортировке строк из файла, который на жёстком, прога отлично работает, может показаться абсурдом, но я не понял вот в этом куске (функция по обраюотке)-base-содержит в себе все строки файла с жёсткого:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
void strochka(char** base, int e)       //Функция сортировки строк
{
    char* min;
    char* temp;
    int s;
    
 
    for (int j = 0; j<e; j++)       // Берёт с первой строки по последнюю и  сравнивает её с остальными в массиве
    {
        min = base[j];
        for (int i = j + 1; i<e; i++)  // со второго элемента до конца файла
        {    
 
            if ((strcmp(min,base[i]))==1)  //Сравнение строк  (Если min>base[i])
 
            {                
                min = base [i];  //записываем в min, если найдётся строка меньше чем первая (ASCII) 
                s=i;            //индекс минимального элемента
            }
        }
 
        if ((strcmp(min,base[j]))==-1)   // Если min<base[j], то выполнит
        {
            temp=base[j];                //записываем в temp значение, хранимое в base[j]
            base[j]=base[s];            //записываем в base[j] значение, хранимое в base[s]
            base[s] = temp;            //записываем в base[s] значение, сохранённое в temp
        }
 
    }
 
    for (int k=0;k<=(e-1);k++)
    {
 
        printf ("Элемент %d >> %s",k+1,base[k]);
 
    }
}



Вот тут :

temp=base[j]; //записываем в temp значение, хранимое в base[j]
base[j]=base[s]; //записываем в base[j] значение, хранимое в base[s]
base[s] = temp; //записываем в base[s] значение, сохранённое в temp


Я работаю с массивом и перезаписываю значения в ячейках массива или в квадратных скобках я указываю с какой областью памяти работать?
Другими словами я работаю с указателем или с массивами?
Если у кого-то есть чёткая информация про указатели и про работу указателя на указатель, пожалуйста напишите ресурс, какая-то каша в голове...(

Спасибо Огромное за помощь! Она так нужна...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2010, 22:54     Работа с указателем на массив в функции (!!!)
Посмотрите здесь:

C++ Работа с указателем на void *
C++ Работа с указателем.
Как передать массив в массив с указателем C++
C++ Работа с указателем
C++ Работа с указателем на двумерный массив
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
18.04.2010, 23:19     Работа с указателем на массив в функции (!!!) #2
в с++ указатели и массивы тесно связаны друг с другом. Имя массивабез индекса- это указатель на его первый элемент.
Следующие два выражение абсолютно идентичны:
C++
1
2
p
&p[0]
(Герберт Шилдт Полный справочник по с++)

если имя массива без индекса - указатель на первый его элемент, то mas[i] - указатель на i-ый элемент.
По сути ты работаеш с указателями
metoflex
4 / 4 / 0
Регистрация: 18.04.2010
Сообщений: 82
18.04.2010, 23:42  [ТС]     Работа с указателем на массив в функции (!!!) #3
Цитата Сообщение от PointsEqual Посмотреть сообщение
в с++ указатели и массивы тесно связаны друг с другом. Имя массивабез индекса- это указатель на его первый элемент.
Следующие два выражение абсолютно идентичны:
C++
1
2
p
&p[0]
(Герберт Шилдт Полный справочник по с++)

если имя массива без индекса - указатель на первый его элемент, то mas[i] - указатель на i-ый элемент.
По сути ты работаеш с указателями
Да, указатели и массивы тесно связаны между собой...это точно...

Впринципе у меня в выделенном жирным куске- просто происходит изменение указателя?
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
18.04.2010, 23:51     Работа с указателем на массив в функции (!!!) #4
...да
Yandex
Объявления
18.04.2010, 23:51     Работа с указателем на массив в функции (!!!)
Ответ Создать тему
Опции темы

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