0 / 0 / 1
Регистрация: 06.11.2014
Сообщений: 156

О структурах. Как в массив записываются элементы разных типов без указания собственно типа?

23.07.2017, 21:34. Показов 810. Ответов 5

Студворк — интернет-сервис помощи студентам
Имеется следующая программа
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "stdafx.h";
#include <iostream>
#include <string>
 
struct Alphabet {
    int i;
    char c;
}sA[5]{ 1,'a',2,'b',3,'c',4,'d',5,'e' }, *psA = &sA[0]; Ссылается на 0 элемент массива
 
using namespace std;
int main()
{
    for (int k = 0; k<4; k++) {
        psA++; обновляет индекс через указатель
        cout << psA->c;
    }
    cin.get();
}
Она выводит bcde. Вопрос как в массив записываются элементы разных типов без указания собственно типа?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.07.2017, 21:34
Ответы с готовыми решениями:

добавление в контейнер без указания типов данных?
Привет, у меня проблема. Сразу перейду к коду: template &lt;class structType&gt; class CMyExperimentator { private: ...

Объявить массив mb как массив литерных указателей без указания количества элементов
Помогите решить такую задачу: Объявить массив mb как массив литерных указателей без указания количества элементов; инициализировать...

Как можно удалить все элементы из List без указания диапазона и индекса?
че-то так не получается digit.Remove();

5
Модератор
Эксперт С++
 Аватар для zss
13761 / 10957 / 6488
Регистрация: 18.12.2011
Сообщений: 29,218
23.07.2017, 21:53
Как это без указания?
Указано же, что первый элемент (int i) - целое число, второй (char c) - символ.
Т.о. нулевой элемент массива sA содержит 1,'a',
первый - 2,'b', и т.д.
0
0 / 0 / 1
Регистрация: 06.11.2014
Сообщений: 156
23.07.2017, 22:02  [ТС]
zss, то есть массив следующий сразу за объявленной структурой сразу принимает типы значений ее переменных?
0
Модератор
Эксперт С++
 Аватар для zss
13761 / 10957 / 6488
Регистрация: 18.12.2011
Сообщений: 29,218
24.07.2017, 07:43
Это не массив, а список инициализации.
Кстати, там пропущен знак равно:
C++
1
2
3
4
struct Alphabet {
    int i;
    char c;
}sA[5]={ 1,'a',2,'b',3,'c',4,'d',5,'e' }, *psA = &sA[0];
0
Любитель чаепитий
 Аватар для GbaLog-
3744 / 1800 / 566
Регистрация: 24.08.2014
Сообщений: 6,018
Записей в блоге: 1
24.07.2017, 08:01
Цитата Сообщение от zss Посмотреть сообщение
Кстати, там пропущен знак равно
начиная с с++11 можно инициализировать и так.
1
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
24.07.2017, 09:44
Цитата Сообщение от Lord007 Посмотреть сообщение
Вопрос как в массив записываются элементы разных типов без указания собственно типа?
По хорошему, там должно быть что-то на подобии:
C++
1
{{1,'a'},{2,'b'},{3,'c'},{4,'d'},{5,'e'}}
Т.е. каждый элемент массива инициализируется своей парой. Но из-за brace elision "лишние" фигурные скобки можно опускать, правда работает это только для агрегированных типов. В этом случае компилятор может определить порядок, в котором инициализируются элементы твоей структуры.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.07.2017, 09:44
Помогаю со студенческими работами здесь

Можно ли передать переменную в класс без указания ее типа
Есть универсальный класс. С дофига и более функциями. И при работе с классом приходится постоянно писать типы переменных в &lt;&gt; ...

Можно ли заменить обращение к Union без указания типа переменной?
Можно ли заменить обращение к Union без указания типа переменной?(т.е. без .i .f .str, а просто к &quot;data&quot;) #include...

Как создать массив из объектов разных типов
Привет, интересует такая проблема: У меня есть абстрактный класс, от которого наследуются классы и потом создаются объекты этих классов....

Как сделать массив Collection из разных типов классов?
pomogite zdelat masiv (Collection) , vluchauschiy v seby raznii tipi klassov ..........

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


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

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

Новые блоги и статьи
Непрерывная интеграция для пакета Python
Mr. Docker 22.06.2025
Было 4 часа утра пятницы, когда я выпустил новую версию нашей внутренней библиотеки для обработки данных. Релиз 0. 5. 2 содержал небольшой фикс для обработки дат в ISO формате, что может пойти не так?. . .
Продвинутый ETL на C# из OLTP БД в хранилище
stackOverflow 22.06.2025
Работая в сфере корпоративной аналитики, я постоянно сталкиваюсь с одним и тем же - нужны чистые, структурированные и, главное, свежие данные. Без них современные аналитические системы, машинное. . .
Мастер-класс по микросервисам на Node.js
Reangularity 21.06.2025
Node. js стал одной из самых популярных платформ для микросервисной архитектуры не случайно. Его неблокирующая однопоточная модель и событийно-ориентированный подход делают его идеальным для. . .
Управление Arduino из WPF приложения
Wired 21.06.2025
Зачем вообще связывать Arduino с WPF-приложением? Казалось бы, у Arduino есть собственная среда разработки, своя экосистема, свои способы управления. Однако при создании серьезных проектов. . .
Звёздная пыль
kumehtar 20.06.2025
Я просто это себе представляю: как создавался этот мир. Как энергия слипалась в маленькие частички. Как они собирались в первые звёзды, как во вселенной впервые появился Свет. Как эти звёзды. . .
Создание нейросети с PyTorch
AI_Generated 19.06.2025
Ключевое преимущество PyTorch — его питоновская натура. В отличие от TensorFlow, который изначально был построен как статический вычислительный граф, PyTorch предлагает динамический подход. Это. . .
JWT аутентификация в ASP.NET Core
UnmanagedCoder 18.06.2025
Разрабатывая веб-приложения, я постоянно сталкиваюсь с дилеммой: как обеспечить надежную аутентификацию пользователей без ущерба для производительности и масштабируемости? Классические подходы на. . .
Краткий курс по С#
aaLeXAA 18.06.2025
Здесь вы найдете все необходимые функции чтоб написать програму на C# Задание 1: КЛАСС FORM 1 public partial class Form1 : Form { Spisok listin = new Spisok(); . . .
50 самых полезных примеров кода Python для частых задач
py-thonny 17.06.2025
Эффективность работы разработчика часто измеряется не количеством написаных строк, а скоростью решения задач. Готовые сниппеты значительно ускоряют разработку, помогают избежать типичных ошибок и. . .
C# и продвинутые приемы работы с БД
stackOverflow 17.06.2025
Каждый . NET разработчик рано или поздно сталкивается с ситуацией, когда привычные методы работы с базами данных превращаются в источник бессонных ночей. Я сам неоднократно попадал в такие ситуации,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru