Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 24.11.2017, 14:14   #1
СтудПом
Форумчанин
 
Регистрация: 08.11.2017
Сообщений: 158
Репутация: 3
По умолчанию Многомерный массив

Делаем int A[][] - двумерный массив
Вопросы
A - указатель на что?
A[] - массив указателей?

Где-то эта дурь была, но не могу найти.

Проблема - чем является многомерный массив в C?
Семантика - двумерный массив, это одномерный массив указателей на одномерные массивы. Но практически, компилятор должен строить единый блок с размерностью ширина на высота, а доступ реализуется пересчётом указателя типа *(A+ширина*номер_строки+номер_элеме нта_в_строке).

В книжках, которые у меня есть, этого точно нет. Даётся только синтаксис построения и работы, но содержание не раскрыто.

Последний раз редактировалось СтудПом; 24.11.2017 в 15:03.
СтудПом вне форума   Ответить с цитированием
Старый 24.11.2017, 16:29   #2
waleri
Профессионал
 
Регистрация: 13.07.2012
Адрес: Нижний Новгород
Сообщений: 5,166
Репутация: 1578
По умолчанию

А не указатель, А - массив.
Не стоит путать эти два понятия.
Указателей на многомерные массивы в С нет.
waleri вне форума   Ответить с цитированием
Старый 24.11.2017, 17:29   #3
СтудПом
Форумчанин
 
Регистрация: 08.11.2017
Сообщений: 158
Репутация: 3
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
А не указатель, А - массив.
Технически, имя массива является указателем. Можно сделать указатель на число и массив чисел и эти две переменные будут совместимы по присваиванию и арифметике указателей.
СтудПом вне форума   Ответить с цитированием
Старый 24.11.2017, 17:46   #4
waleri
Профессионал
 
Регистрация: 13.07.2012
Адрес: Нижний Новгород
Сообщений: 5,166
Репутация: 1578
По умолчанию

Технически "массив" и "указатель" это разные вещи.
waleri вне форума   Ответить с цитированием
Старый 24.11.2017, 18:08   #5
СтудПом
Форумчанин
 
Регистрация: 08.11.2017
Сообщений: 158
Репутация: 3
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Технически "массив" и "указатель" это разные вещи.
-не для C.

В C это одно и то же. Можете проверить на операциях присваивания. Так же в книгах можно встретить передачу массива в функцию с описанием в заголовке типа
Код:

void f(int *a)

Можете также проверить вместо операции индексации [] использовать указатель на начало массива (элемент массива) и операцию сложения с целым числом.
Код:

for (int  i=0; i<Size; ++i)
for (int *i=A; i<sizeof(int)*Size; ++i)

-если не ошибаюсь, будут эквивалентны
СтудПом вне форума   Ответить с цитированием
Старый 24.11.2017, 18:16   #6
waleri
Профессионал
 
Регистрация: 13.07.2012
Адрес: Нижний Новгород
Сообщений: 5,166
Репутация: 1578
По умолчанию

Начнем с простого:
char* ptr; printf("%u", sizeof(ptr));
char arr[10]; printf("%u", sizeof(arr));
waleri вне форума   Ответить с цитированием
Старый 24.11.2017, 18:21   #7
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 10,388
Репутация: 1609

icq: 216409213
По умолчанию

Цитата:
В C это одно и то же. Можете проверить на операциях присваивания. Так же в книгах можно встретить передачу массива в функцию с описанием в заголовке типа
Нет. Они могут приводиться. Как например вы можете присвоить флоат переменной инт значение.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Многомерный массив $Optimus$ Помощь студентам 1 06.09.2013 20:39
многомерный массив fedkov2013 Паскаль 0 26.05.2013 11:47
многомерный массив. C# Serg94 Помощь студентам 8 13.12.2011 01:53
С++/С# многомерный массив DeFace Общие вопросы C/C++ 4 03.05.2009 16:07
Многомерный массив Iogan Gamba Puti Общие вопросы C/C++ 2 08.05.2008 15:20




02:40.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru