18 / 14 / 4
Регистрация: 02.04.2017
Сообщений: 125
1

Объясните доступным языком пару строк кода

09.04.2017, 21:27. Показов 3657. Ответов 29
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
что обозначает подобный код:

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
#include <iostream> 
#include <cstdlib> 
 
using namespace std;
 
int** createInt(int m,int n) { 
 
//int** a = new int*[m]; 
for (int i = 0; i < m; i++) {
//a[i] = new int[n]; 
a[i] = new float[n];
 
}
 
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
cin >> a[i][j];
}
}
 
return a;
}
 
int main()
{
int m,n;//m-строка,n-столбец
 
//int** a = createInt(m, n);}
..............................
..............................
интересует значение вот такого рода строки ://int** createInt(int m,int n) я понял что это функция а что значат **?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2017, 21:27
Ответы с готовыми решениями:

Господа, пожалуйста объясните мне доступным языком, что делает этот метод
public T Load(ref int autoincrement) { if (!File.Exists(filePath)) ...

в паскале особо не шарю,так что если можно доступным языком объясните
что не правильно-то ? 1 Var F,x,arccos: real; begin writeln('vvedite x'); readln(x); if x&lt;0...

Объясните пару частей из Кода на СИ
Это код перевода из любой системы счисления в другую , пределы от 2 до 36. Красный выделено то, что...

Библиотеки и компоненты доступным языком
Здравствуйте, помогите, пожалуйста, простым языком и крайне понятно. Я скачала библиотеку,...

29
7784 / 6553 / 2982
Регистрация: 14.04.2014
Сообщений: 28,615
09.04.2017, 21:32 2
Это указатель на указатель на int.
0
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
09.04.2017, 21:34 3
rayzor48, в общем случае, для оформления кода,
выделите код и нажмите на кнопку соответствующего языка (см. изображение)
0
18 / 14 / 4
Регистрация: 02.04.2017
Сообщений: 125
09.04.2017, 21:36  [ТС] 4
То есть это указатель на функцию? а дальше в main идет указатель на нее? А то я не понял что делают ** в имени функции
0
7784 / 6553 / 2982
Регистрация: 14.04.2014
Сообщений: 28,615
09.04.2017, 21:37 5
Причём тут функция? Указатель на указатель.
0
18 / 14 / 4
Регистрация: 02.04.2017
Сообщений: 125
09.04.2017, 21:40  [ТС] 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//int** createInt(int m,int n) { 
float** createFloat(int m, int n) {
    //int** a = new int*[m]; 
    float** a = new float*[m];
    for (int i = 0; i < m; i++) {
        //a[i] = new int[n]; 
        a[i] = new float[n];
 
    }
 
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            cout << "[" << i << "][" << j << "]: ";
            cin >> a[i][j];
        }
    }
 
    return a;
}
в самой первой строке там где функция int** createInt(int m,int n){} , извиняюсь за свою тупизну, просто еще не до конца понимаю указатели)
Если не трудно, объясните еще зачем нужен указатель на указатель на int(float)
0
7784 / 6553 / 2982
Регистрация: 14.04.2014
Сообщений: 28,615
09.04.2017, 21:43 7
Может быть и три звёздочки. Указатели не только на обычные типы указывают, но и на другие указатели.
0
18 / 14 / 4
Регистрация: 02.04.2017
Сообщений: 125
09.04.2017, 21:45  [ТС] 8
Спасибо, более или менее ясности прибавилось, еще пара вопросов один вопрос, для чего он тут нужен?
И в конце программы вывод матрицы и возврат нуля, но я не где не нашел строки delet для зачистки массива, она тут не нужна?
0
7784 / 6553 / 2982
Регистрация: 14.04.2014
Сообщений: 28,615
09.04.2017, 21:50 9
Двухмерный динамический массив так реализуется.
0
18 / 14 / 4
Регистрация: 02.04.2017
Сообщений: 125
09.04.2017, 21:53  [ТС] 10
int createInt(int** matrix, int n, int m) - эквивалентно?
0
7784 / 6553 / 2982
Регистрация: 14.04.2014
Сообщений: 28,615
09.04.2017, 21:54 11
Нет.
0
18 / 14 / 4
Регистрация: 02.04.2017
Сообщений: 125
09.04.2017, 21:58  [ТС] 12
А в чем они отличаются?
0
7784 / 6553 / 2982
Регистрация: 14.04.2014
Сообщений: 28,615
09.04.2017, 22:00 13
Ты не сможешь вернуть изменённый указатель. Вот так можно:
C++
1
void createInt(int** &matrix, int n, int m)
0
63 / 63 / 39
Регистрация: 18.11.2016
Сообщений: 562
09.04.2017, 22:04 14
Указатели, это обычная переменная, которая еще ни определенным значением.
Например
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int *value; // Представьте, что это обычная переменная не определеного типа
    value = new int (10); // Вот мы создали переменную с значением 10;
    value = new int [10]; // Вот мы создали массив типа int. Это было бы тоже самое, если бы мы написали int arr[10];
 
    // Указатель на указатель это немного сложнее. Но все же я постараюсь вам объяснить.
    
 
    int** value; // Представьте, что это обычная переменная.
    value = new int* [10]; // Создали массив указательей, типа int* value 
                           // мы можем просто присваивать им значение или создавать массивы.
    for (int i(0); i!=10; i++){
        value[i] = new int (i); // создали переменную с значением переменной из i;
    }
 
 
    for (int i(0); i!=10; i++){
        value[i] = new int [10]; // Мы создали массив типа int на 10 элеметов.
    }
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
09.04.2017, 22:11 15
Лучший ответ Сообщение было отмечено rayzor48 как решение

Решение

У функции есть такая ерундовина, она return называется. Эта самая ерундовина играет очень важное значение, с помощью неё возвращают результат работы функции. И тип, который должен быть у результата работы функции, указывают перед названием функции:

C++
1
2
int foo(){}; //Тип int
int* foo(){} //Тип int*
Т. е. что int, что int*, что int*************** - это всего-лишь тип.


В зависимости от типа результата работы функции, если он не пустой, результат работы функции можно запоминать в переменные.
C++
1
2
3
int foo(){ ... }; //Результат работы можно запомнить в переменную int
string foo(){} //Результат работы можно запомнить в переменную string
int** foo(){} //Результат работы можно запомнить в переменную int**
В зависимости от того, в какую переменную предполагается запоминать результат работы функции, функции задаётся конкретный тип: такой же тип, как и тип той переменной, в которую результат функции будет записываться.

Т. е. это всё всего-лишь тип для значения, возвращаемого return'ом.
1
18 / 14 / 4
Регистрация: 02.04.2017
Сообщений: 125
09.04.2017, 22:19  [ТС] 16
Спасибо, теперь я более или мене понял, со временем пойму полностью) Теперь последний вопрос, почему в програме нет строки уничтожающей массив? (delete)?
C++
1
2
3
4
5
6
7
8
9
10
11
12
    cout <<endl<< "Отсортированная матрица"<< endl;
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            cout << "a[" << i << "][" << j << "]: " << a[i][j] << " ";
        }
        cout <<endl;
    }
 
    cout <<endl;
    system("pause");
    return 0;
}
конец программы
0
7784 / 6553 / 2982
Регистрация: 14.04.2014
Сообщений: 28,615
09.04.2017, 22:21 17
Программист был криворукий.
0
18 / 14 / 4
Регистрация: 02.04.2017
Сообщений: 125
09.04.2017, 22:25  [ТС] 18
Хотел бы я чтоб вы ему это в лицо сказали) Очень он вредный человек с завышеной гордыней)
То есть я должен как обычно зачистить сначала строки, потом указатели на эти строки в главной функции?
0
7784 / 6553 / 2982
Регистрация: 14.04.2014
Сообщений: 28,615
09.04.2017, 22:26 19
В обратном порядке по отношению к созданию.
0
18 / 14 / 4
Регистрация: 02.04.2017
Сообщений: 125
09.04.2017, 22:30  [ТС] 20
Это я понял, в главной функции или в той в которой создавался массив? или это не имеет значения?
0
09.04.2017, 22:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2017, 22:30
Помогаю со студенческими работами здесь

задачка из javarush, объясните пару строчек кода
Задача стояла так: Введи с клавиатуры 10 слов в список строк, метод doubleValues должен удваивать...

Объясните пару строчек кода из метода расчета площади многоугольника разбитого на треугольники
Объясните тупому два метода,если что это расчет площади многоугольника разбитого на треугольники....

Может кто-нибудь знает где про графы написано доступным языком?
где можно почитать про графы и кто подскажет, как их описывать в программировании

Подскажите что-нибудь написанное, на ваш взгляд, понятным и доступным языком по нормальным алгоритмам Маркова!
Подскажите что-нибудь написанное, на ваш взгляд, понятным и доступным языком по нормальным...


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

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

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