Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
18 / 14 / 4
Регистрация: 02.04.2017
Сообщений: 125

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

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

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

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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.04.2017, 21:27
Ответы с готовыми решениями:

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

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

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

29
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
09.04.2017, 22:31
Студворк — интернет-сервис помощи студентам
Удалять надо, когда он уже не нужен. В конце main() обычно.
0
18 / 14 / 4
Регистрация: 02.04.2017
Сообщений: 125
09.04.2017, 23:11  [ТС]
C++
1
int** createInt(int m,int n)
На что он указывает?
0
-16 / 14 / 3
Регистрация: 22.01.2013
Сообщений: 154
09.04.2017, 23:14
Имя массива есть укзатель на первый элемент его. Указатель на имя есть указатель на указатель первого элемента массива.
0
18 / 14 / 4
Регистрация: 02.04.2017
Сообщений: 125
09.04.2017, 23:18  [ТС]
То есть после завершения intcreate возвращается указатель на массив?
И когда начинает работать int create?
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
09.04.2017, 23:43
Цитата Сообщение от rayzor48 Посмотреть сообщение
И когда начинает работать int create?
Когда скажешь, тогда и работает.

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
int** createInt(const int m, const int n){
   //Инициализация указателя
   return указателя;
}
 
int main(){
  /*Куча всякого подготовительного кода
  Среди которого есть какая-нибудь переменная, названная Arr, 
  тип которой есть указатель на указатель: int**
 */
  Arr = createInt(10,20); //Вот ты сказал: явись - и функция пришла, это и есть начало работы
//Куча всякого кода
/* Очистка*/
 
 
  Arr = createInt(5,8); //Вот ты сказал: явись - и функция пришла, это и есть начало работы
//Куча всякого кода
  /*Очистка*/
 
 
  Arr = createInt(15,88); //Вот ты сказал: явись - и функция пришла, это и есть начало работы
 
/*Очистка*/
 
}
Добавлено через 13 минут
Цитата Сообщение от gavrasio Посмотреть сообщение
Имя массива есть укзатель на первый элемент его.
Это не так. Имя массива не есть указатель, а приводится к указателю на первый элемент массива. Само по себе имя массива - это просто имя массива, не указатель.
0
-16 / 14 / 3
Регистрация: 22.01.2013
Сообщений: 154
10.04.2017, 00:03
Ребята, спасайте. Имя массива - есть указатель на его первый болт. Я не прав? Это есть адрес его первого члена.
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
10.04.2017, 01:10
Конечно не прав.
4.2 Array-to-pointer conversion [conv.array]
An lvalue or rvalue of type “array of N T” or “array of unknown bound of T” can be converted to a prvalue
of type “pointer to T”. The result is a pointer to the first element of the array.
Мой хромой перевод для тех, кому сложно перевести.
lvalue или rvalue вида "массив из N элементов типа Т" или "массив с неизвестным числом элементов типа Т" может быть приведёно в prvalue вида "указатель на Т". Результат сего есть указатель на первый элемент массива.
Вы путаете указатель на массив с непосредственно массивом. Указатель на массив, само собой разумеется, указывает на первый элемент массива и в то же время является именем массива, на который сам и указывает, а обычный массив - это обычный массив, имя которого компиляторы умеют приводить к указателю на первый свой элемент.

Не по теме:

А clang, гад, не делает из имени массива prvalue, чем нарушает выцепленное мною в цитату, т. е. или нарушает стандарт, или делает вид, что нарушает стандарт. Вывод основан на выводимом сообщении об ошибке, для prvalue они другие.

0
18 / 14 / 4
Регистрация: 02.04.2017
Сообщений: 125
10.04.2017, 06:51  [ТС]
В связи с прошлыми сообщениями скажите мне на что указывает эта строка
C++
1
int** createInt(int m,int n)
, спасибо
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
10.04.2017, 13:15
Лучший ответ Сообщение было отмечено rayzor48 как решение

Решение

Сказали же уже, строка ни на что не указывает.
По строке можно сказать, что объявлена функция, названная createInt, которая принимает два параметра, типы у которых int. Эта функция возвращает какое-то значение, тип которого указатель на указатель, указывающий на значение типа int. В низкоуровневом С++ обычно указателем на указатель представляют двумерный массив, точнее это указатель на двумерный массив. Количество звёздочек = мерность массива. (Одномерный - одна, двумерный две, 5-мерный - пять и т. д., хотя никто обычно борзомерные массивы не использует, есть более удобные варианты написания кода)

Хочешь понять - вникай в указатели. Никто не сможет указатели объяснить в двух словах. Функция возвращает указатель на указатель, чтобы понять, что такое указатель на указатель, нужно понять что такое указатель.
2
18 / 14 / 4
Регистрация: 02.04.2017
Сообщений: 125
10.04.2017, 17:38  [ТС]
Ты же смог) Коротко и понятно ответил на вопрос, как я и просил
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.04.2017, 17:38

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

задачка из javarush, объясните пару строчек кода
Задача стояла так: Введи с клавиатуры 10 слов в список строк, метод doubleValues должен удваивать слова по принципу a,b,c -&gt;...

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

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

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


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
Remote Connection Manager
DevAlt 21.06.2026
Написал для себя небольшую прилагу: https:/ / github. com/ altbodhi/ ReConMan По итогу пришел к мысли, что DU не дружат с существующими технологиями. От сериализации до отображения в реляционную. . .
Администрация Хабра удаляет новые энрегоэфективные алгоритмы, которые не западной школы кода, и вовсе никак не сгенерировавны.
Hrethgir 20.06.2026
Делается это, как замечено, при правках - при объявлении концептуальных отличий в алгоримах. Делается это, по линейке событий - после дополнения публикации основными отличиями от основных западных. . .
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2. Задача: контроль уникальности строк в. . .
Клиент
Uhbif79 18.06.2026
Здесь простой клиент для работы с сервером.
Сервер
Uhbif79 18.06.2026
Выкладываю простейший сервер.
Дефенестрация
kumehtar 18.06.2026
Узнал интересное слово. Дефенестрация. Это когда ты выбрасываешь кого-либо или что-либо из окна. Возьму на вооружение)))
Дихотомия добра и зла
kumehtar 18.06.2026
Как Дзен-буддисты говорят о добре и зле: не нужно воевать против зла, нужно воевать против невежества. Тогда добро станет ествественным, и поэтому вечным. Но дело в том, что невежество всё время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru