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

Что за конструкция языка

12.03.2013, 21:03. Показов 1237. Ответов 4
Метки нет (Все метки)

C++
1
int a[]={{{1,2},3},{{4,5},6},{{7,8},9}};
как можно вывести значение 6 например? как вообще обращаться к элементам массива?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.03.2013, 21:03
Ответы с готовыми решениями:

Конструкция языка С++11 цикл по коллекции
for (auto x : result) Что означает данная конструкция?

Что за конструкция?
Доброго времени суток. Встречал где-то конструкцию типа for(;;) { тыры-пыры; } В общем, без...

Что за конструкция?
Привет. Что за конструкция такая? Поясните что делает: for( int i=0;i<N;++i ){ ...

Что за конструкция?
что означает такая конструкция??? int *&node

4
Don't worry, be happy
17767 / 10532 / 2034
Регистрация: 27.09.2012
Сообщений: 26,504
Записей в блоге: 1
12.03.2013, 21:55 2
Это вообще компилируется?

Добавлено через 1 минуту
Что за конструкция в языке?
0
600 / 467 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
12.03.2013, 23:07 3
хм. прикольно. у меня скомпилилось, даже вот так вот:
Код
gcc 1.c -o 1.S --std=c89 -O3 -S -ansi -pedantic
но получилось в секции данных:
Assembler
1
2
3
4
5
6
.data
    .align 4
_a:
    .long   1
    .long   4
    .long   7
то есть изначально вроде как бы можно было бы и обратиться к 6-ке через a[1][1], ну как то по идее должно быть так. но на самом деле массив просто обрезается. и нет, динамически, потом где то в коде он не создается, проверил как и по коду, так и через "линеаризацию" массива с помощью цикла -- начиная с индекса 3 циферки примерно такие:
Код
-1
16384
4221736
64
-16445
16320
, что не слишком то похоже на указатели или что-то в этом роде...
0
Don't worry, be happy
17767 / 10532 / 2034
Регистрация: 27.09.2012
Сообщений: 26,504
Записей в блоге: 1
13.03.2013, 09:41 4
Что за конструкция языка
0
600 / 467 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
13.03.2013, 12:15 5
подтверждаю, g++ это уже не компилирует. gcc (сишный компилятор) показывает те же самые ошибки при компиляции (насчет скобок), но считает, что это warning, и пропускает:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
int a[] = {   
                {{1,2},3},
                {{4,5},6},
                {{7,8},9}
              };
              
int main() {
    int i;
    for (i = 0; i < 9; i++) {
        printf("%d\n", a[i]);
    }
    
    return 0;
}

Код
C:\>gcc -pedantic -O3 -S 1.c -o 1.S
1.c:4:14: warning: braces around scalar initializer [enabled by default]
1.c:4:14: warning: (near initialization for 'a[0]') [enabled by default]
...(еще штук 10 подобных warning-ов)
Код
C:\>g++ -pedantic -O3 -S 1.c -o 1.S
1.c:7:6: error: braces around scalar initializer for type 'int'
версия gcc: 4.7.2 (mingw).
В любом случае, проблема есть, а то, что у меня gcc вот так вот скомпилил это дело, так это, скорее, плохо, чем хорошо: он просто потерял данные. К циферке 6 в массиве mmd-а обратиться не получается. Попробовал также запустить g++ с -std=c++0x (ну и -std=gnu++0x, на всякий пожарный), -- не компилируется, по той же причине, что и выше
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.03.2013, 12:15
Помогаю со студенческими работами здесь

Что за конструкция в языке?
int a = {{1,2},3}; что значат скобки внутри скобок?

Что значит эта конструкция?
Расскажите что это за конструкция double fm(double, int);

Что делает данная конструкция?
int x = 5; 0 = x + x; Что она делает, как называется и зачем используется?

Что за static friend конструкция?
Здравствуйте, изучаю C++, откопал я тут случайно пример: class t{ int var; public: t(int...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru