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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
metoflex
4 / 4 / 0
Регистрация: 18.04.2010
Сообщений: 82
#1

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

18.04.2010, 22:54. Просмотров 1366. Ответов 3
Метки нет (Все метки)

Я написал программу по сортировке строк из файла, который на жёстком, прога отлично работает, может показаться абсурдом, но я не понял вот в этом куске (функция по обраюотке)-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


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

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

Работа с указателем из main в функции - C++
Всем доброе утро.) Делал задание по односвязным спискам и столкнулся с проблемкой. Передаю конец списка по указателю в функция и...

Работа с указателем на двумерный массив - C++
Добрый день. Изучая тему указатели, столкнулся с проблемой - никак не могу понять как работать с указателем на двумерный массив. Поиск...

Массив в функции со static указателем на него - C++
Здрасти, делаю задание на указатели из книги Хортона по Вижуал С++. Задачка: передать в функцию строку и чтобы функция запомнила строку. ...

Работа с указателем. - C++
Доброе время суток. При чтении из файла вроде все нормально, но когда я пытаюсь вручную установить указатель, в нужную позицию, и считать...

Работа с указателем - C++
Есть такой указатель: char *s=&quot;n1=1&amp;n2=2&amp;name=test&amp;sername=test2&quot;; Нужно выделить с этой стоки значение name, то есть &quot;test&quot; и...

Работа с указателем - C++
#include &lt;ntddk.h&gt; NTSTATUS PsLookupProcessByProcessId(__in HANDLE ProcessId, __out PEPROCESS *Process); static VOID...

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

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

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

Впринципе у меня в выделенном жирным куске- просто происходит изменение указателя?
0
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
18.04.2010, 23:51 #4
...да
0
18.04.2010, 23:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2010, 23:51
Привет! Вот еще темы с ответами:

Работа с константным указателем - C++
Ребят, добрый всем вечер!!! Помогите пожалуйста разобраться с задачей. есть константный указатель на строку LPCSTR FileName =...

Работа с указателем на функцию - C++
Пытаюсь сделать указатель, принимающий строку и возвращающий вектор интов, не получается с присвоением результата из указателя в переменную...

Работа с указателем на void * - C++
Добрый всем день. Помогите пожалуйста вот по какому вопросу. Имеется некая функция: void* str_replace( const char str ) { ...

В чем разница между указателем и указателем на указатель? - C++
int x, *p, *q; x=10; p=&amp;x; q=p; cout&lt;&lt;*q; int x, *p, **q; x=10; p=&amp;x; q=&amp;p;


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

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

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