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

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

09.04.2017, 21:27. Показов 4296. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №3)
Maks 15.11.2026
Обновленная версия предыдущей обработки. Изменения коснулись букв: Ъ, Ы, Ь, Э, отображения которых зависят от положения реквизита "Транслитерация имён". Изменено отображение буквы Й. Добавлена. . .
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru