|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.12.2009, 05:52 | #1 |
Регистрация: 14.12.2009
Сообщений: 7
|
int **x
Здравствуйте! у меня вопрос: что в данной программе обозначает **x пожалуйста дайте полное её описание. Спасибо!
Текст программы: Код:
Последний раз редактировалось Stilet; 14.12.2009 в 08:45. |
14.12.2009, 08:51 | #2 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
На самом деле не **x, а int** (может писаться как int** x, int **x, int ** x - без разницы). Т.е. указатель на указатель на int. Понимать это следует как одномерный массив одномерных массивов => двумерный массив или матрица. Массивы передавать по значению нельзя, поэтому они передаются в виде указателей. Ну и поскольку в самом указателе не содержится информация, является ли он указателем на единственный элемент, или же на массив, и если второе - то какой этот массив длины, то одновременно с указателем передается количество элементов в массивах (одном массиве int* и нескольких массивах int)
P.S. А для оформления кода используйте тег CODE (кнопка # в редакторе сообщения)
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
14.12.2009, 09:14 | #3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Видимо это сделано для того чтоб динамически размещать двумерный массив в памяти. Вот a = new int*[n]; размещает массив указателей на строки (), a[i] = new int [m]; сами строки создает
I'm learning to live...
|
|
14.12.2009, 18:36 | #4 |
Регистрация: 14.12.2009
Сообщений: 7
|
а можно поточнее про указатель на указатель? или ссылку пожалуйста)
|
14.12.2009, 19:33 | #6 |
Регистрация: 14.12.2009
Сообщений: 7
|
да я искал так, но толком простого и точного понятия не нашёл( мне нужно преподавателю за эту тему рассказать
|
14.12.2009, 20:14 | #7 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Ну смотрите. TYPE* var; - это указатель на объект var типа TYPE. Указатель тоже является типом, поэтому можно создать указатель на объект этого типа:
Код:
Код:
И не зря в C++ двумерные массивы записываются как, например, Код:
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
15.12.2009, 12:56 | #8 |
Регистрация: 14.12.2009
Сообщений: 7
|
// функция для вывода элементов матриц
void vivod (int **x, int nx, int mx) { int j, i; for ( i=0; i<nx; i++) { for (j=0; j<mx; j++) printf ("\n %5d", x[i][j]); } } как должна выглядеть блок-схема для утого куска? у меня получилась но преподаватель забраковал, что не то? |
16.12.2009, 17:16 | #9 |
Регистрация: 14.12.2009
Сообщений: 7
|
может кто поправить блок схему?
Последний раз редактировалось Di3el; 16.12.2009 в 17:18. |
16.12.2009, 18:06 | #10 |
Форумчанин
Регистрация: 22.11.2007
Сообщений: 664
|
Примерно так
Неприятности приходят и уходят, а жизнь продолжается!
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
float to int | Артэс | Общие вопросы C/C++ | 1 | 14.12.2009 01:20 |
float to int | span4 | SQL, базы данных | 7 | 01.06.2009 10:57 |
char to int | kezman | Общие вопросы C/C++ | 3 | 24.07.2008 08:59 |
из char в int | llin | Общие вопросы C/C++ | 13 | 11.07.2008 06:51 |
из char в int?? | Mika | Общие вопросы C/C++ | 4 | 20.06.2008 15:18 |