0 / 0 / 0
Регистрация: 31.05.2014
Сообщений: 24

Объяснить строку объявления массива

31.07.2014, 23:52. Показов 663. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ньюанс
C++
1
int* array =  new int[m, n];
на С/C++

Пришлость мне недавно C# код в почти голый C(C++) переписывать.

Как-то прощелкал и след. выражение C#:
C#
1
int[,] TransposeMatrix = new int[m, n];
автоматом "перевел" так (неправильно):
C++
1
int *TransposeMatrix = int TType[m, n];


Оно собралось. VS2008. И даже на такой доступ не материлось:
C++
1
TransposeMatrix[2, 1] = 2;
Понятно, что работало не так, как надо. Обнаружил позже.


А правильно ведь так (одномерный массив)
C++
1
int *TransposeMatrix = int TType[m * n];
Вопрос, а что же всетаки делает int *TransposeMatrix = int TType[m, n]; ?
Что оно создает? И если собирается без ошибок компилятора, то для чего задумана подобная конструкция.
Равно как при
TransposeMatrix[2, 1] = 2; куда оно пишется?


Заранее спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.07.2014, 23:52
Ответы с готовыми решениями:

Объявления массива.
Как увеличить количество переменных в массиве?

Объяснить строку
while (strchr(S,*str)==strrchr(S,*str) ) объясните строку

Объяснить строку
Что значит такая конструкция, например: k->next->prev=tmp

4
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
31.07.2014, 23:55
C++
1
cout << "2, 1 = " << (2, 1);
http://msdn.microsoft.com/ru-r... 6xbxh.aspx
1
0 / 0 / 0
Регистрация: 31.05.2014
Сообщений: 24
01.08.2014, 00:12  [ТС]
func_one( x, y + 2, z );
func_two( (x--, y + 2), z );
In the function call to func_one above, three arguments, separated by commas, are passed: x, y + 2, and z. In the function call to func_two, parentheses force the compiler to interpret the first comma as the sequential-evaluation operator. This function call passes two arguments to func_two. The first argument is the result of the sequential-evaluation operation (x--, y + 2), which has the value and type of the expression y + 2; the second argument is z.


Ну и напоследок вопрос:

А применяет ли на практике кто подобное??? Практично?
Оно вероятно удобно. Но может быть источником ошибок.
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
01.08.2014, 02:07
Цитата Сообщение от Zugunder Посмотреть сообщение
А применяет ли на практике кто подобное???
Очень редко. Эта вещь из разряда сомнительных.
Но перегрузка оператора "запятая" широко используется, например, в библиотеке boost::spirit. Там это вполне оправдано. Хотя кто-то саму boost::spirit в сомнительные может отнести. Поэтому тут каждый случай надо отдельно смотреть. Но ты сам правильно написал самый главный довод против:
Цитата Сообщение от Zugunder Посмотреть сообщение
может быть источником ошибок.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
01.08.2014, 12:07
Цитата Сообщение от Zugunder Посмотреть сообщение
А применяет ли на практике кто подобное???
Оператор запятая (в своем исходном, т.е. не перегруженном виде) используется например в циклах:
C++
1
for( int i=5, j=10; i<10; ++i, ++j)
в тернарном операторе:
C++
1
    return v ? g(), 42 : 100500;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.08.2014, 12:07
Помогаю со студенческими работами здесь

Объяснить строку кода
#pragma comment ( linker, &quot;/EXPORT:MyFunc=_MyFunc@8&quot; ) Объясните, что мы делаем этим. Не уверен, что совсем понял.

Инициализация массива после объявления
Привет народ, нужна ваша помощь. Допустим у меня есть класс с закрытым полем-массивом: //someClass.h class someClass{ int arr;...

rand + ошибки объявления массива
Здравствуйте. У меня такое задание: Используя датчик случайных чисел, заполнить элементы массива неповторяющимися числами. Вот мой код....

Функция объявления двумерного массива
Данный код - объявляет двумерный массив arr. Как из этого куска кода сделать функцию? Передаваемые параметры как мне кажется n и m, а...

Прошу объяснить первую строку
Здравствуйте, я прохожу на данный момент перегрузку операторов, в общем по теоретическому материалу я сейчас перегружаю оператор + в...


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

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

Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru