Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
OMGHero
2 / 2 / 0
Регистрация: 16.02.2011
Сообщений: 36
#1

что означает этот синтаксис? - C++

03.05.2011, 10:47. Просмотров 1052. Ответов 14
Метки нет (Все метки)

Добрый день!
в книге Бьерна Страуструпа встретил такой код
C++
1
enum token_valut {NAME, NUMBER, END, PLUS='+'}
что значит PLUS='+' ?!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2011, 10:47     что означает этот синтаксис?
Посмотрите здесь:

Непонятный синтаксис: что означает запись ::__1 ? - C++
Продолжаю изучать чудесную среду Clion, так вот, при переносе кода из одного файла в другой он интересным образом его изменил! Былоstruct...

Что означает этот код - C++
void inline static Compare(Shape const* const s1, Shape const* const s2), что здесь означает запись const* const

Что означает этот код? - C++
Пример из книги Герберт Шилдт. После строчки "инициализация объекта строка" там идёт вот эта строчка p = (char *) malloc(size); ...

Что означает этот код? - C++
int SIMPLE(int a) { int i; if(a==2){ return 1; } if(a==0 || a==1 || a%2==0){ return 0; } ...

Что означает этот warning? - C++
warning: extended initializer lists only available with -std=c++0x or -std=gnu++0x Появляется когда я меняю это: pvertex.x =...

Вопрос: что означает этот цикл? - C++
Что означает цикл for (int I=0; w; I++); если 1) w – числовой од-номерный массив, 2) w -- строка; 3) w – массив указателей.

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
marina2
Рожденная для битвы
272 / 50 / 5
Регистрация: 08.11.2009
Сообщений: 1,020
03.05.2011, 10:50     что означает этот синтаксис? #2
Цитата Сообщение от OMGHero Посмотреть сообщение
что значит PLUS='+' ?!
Ну переменной PLUS присваивается значение - символ '+'

Не по теме:

Лучше весь код выложи

mansp
18 / 18 / 0
Регистрация: 07.11.2010
Сообщений: 136
03.05.2011, 10:50     что означает этот синтаксис? #3
PLUS='+' инициализация символом +
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
03.05.2011, 10:52     что означает этот синтаксис? #4
Цитата Сообщение от marina2 Посмотреть сообщение
Ну переменной PLUS присваивается значение - символ '+'.
PLUS - это не переменная. См. enum'ы С/С++
OMGHero
2 / 2 / 0
Регистрация: 16.02.2011
Сообщений: 36
03.05.2011, 11:00  [ТС]     что означает этот синтаксис? #5
Цитата Сообщение от marina2 Посмотреть сообщение
Ну переменной PLUS присваивается значение - символ '+'
ну во первых символ присвоить мы не можем.
Это скорее всего компилятор вместо '+' подставляетс ascii код этого символа
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
03.05.2011, 11:06     что означает этот синтаксис? #6
Цитата Сообщение от marina2 Посмотреть сообщение
Ну переменной PLUS присваивается значение - символ '+'
не переменной, а идентификаторы значения, это всё таки енам.
OMGHero
2 / 2 / 0
Регистрация: 16.02.2011
Сообщений: 36
03.05.2011, 11:06  [ТС]     что означает этот синтаксис? #7
Да, это он код символа подставляет, я проверил
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
03.05.2011, 11:07     что означает этот синтаксис? #8
C
1
enum { a, b, c = 1, d, e = 50 };
a = 0
b = 1
c = 1
d = 2
e = 50
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
03.05.2011, 11:08     что означает этот синтаксис? #9
Цитата Сообщение от OMGHero Посмотреть сообщение
ну во первых символ присвоить мы не можем.
Это скорее всего компилятор вместо '+' подставляетс ascii код этого символа
А что по твоему такое присваивание символа? Да и вообще символьное значение? В компе, как у Платона, всё есть число. Но код исмвола обозначает именно символ.
OMGHero
2 / 2 / 0
Регистрация: 16.02.2011
Сообщений: 36
03.05.2011, 11:17  [ТС]     что означает этот синтаксис? #10
В компе, как у Платона, всё есть число. Но код исмвола обозначает именно символ.
спорить не хочу.
есть типы переменных, да они представляются все числами, но это не значит что ты просто можешь int присвавать char. должно происходить преобразование типов
prZzZ
Программист
110 / 90 / 5
Регистрация: 22.03.2011
Сообщений: 233
03.05.2011, 11:20     что означает этот синтаксис? #11
OMGHero, Вы совершенно правы: это код символа '+'
В данном случае NAME = 0, NUMBER = 1 END = 2 PLUS = 43
Страуструп использует этот прием в функции синтаксического анализатора для калькулятора (если мне не изменяет память)
Veyron
106 / 106 / 4
Регистрация: 02.06.2009
Сообщений: 579
03.05.2011, 11:47     что означает этот синтаксис? #12
Цитата Сообщение от OMGHero Посмотреть сообщение
но это не значит что ты просто можешь int присвавать char. должно происходить преобразование типов
Отчего это?

Сырчик:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
 
using namespace std;
 
int main()
{
    char c='A';
    int i=c;
    cout << i << endl;
    return 0;
}
Вывод:
eugene@eugene-desktop:~/проекты/code$ ./code
65
eugene@eugene-desktop:~/проекты/code$
Ваш ответ нечетко сформулирован. Если вы имели ввиду явное приведение типа, то оно тут не нужно. А если неявное - то тут уже другое дело(по идее неявное преобразование можно делать со всеми стандартными типами, только возможна потеря данных).

А по поводу плюса = в перечислении всем элементам по умолчанию присваиваются номера с нуля, а использование назначения другого значения - удобство для пользователя: например, использование в переключателе без дополнительных операций умножения-прибавления и пр.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
03.05.2011, 11:48     что означает этот синтаксис? #13
Цитата Сообщение от Veyron Посмотреть сообщение
Отчего это?
Должно, а если оно подставляется не явно и не содрежит фактических преобразований, то сути это всё равно не меняет.
Veyron
106 / 106 / 4
Регистрация: 02.06.2009
Сообщений: 579
03.05.2011, 12:51     что означает этот синтаксис? #14
Цитата Сообщение от taras atavin Посмотреть сообщение
Должно, а если оно подставляется не явно и не содрежит фактических преобразований, то сути это всё равно не меняет.
Ну это для нас. А для тех, кто не вникает в суть языка - это обычное присваивание.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2011, 13:03     что означает этот синтаксис?
Еще ссылки по теме:

Что означает двоичный поиск?Как определить позицию, где в этот массив можно вставить число x - C++
помогите решить эту задачу &quot;Элементы массива не убывают. Двоичным поиском определить позицию, где в этот массив можно вставить данное число...

Что означает #include - C++
что означает на С++ #include

Что означает выражение с-'0'? - C++
&quot;Если в переменной С находится символ цифры, точнее - код цифры, то выражение с-'0' даёт значение самого числа, код которого находится в ...

А что означает if _(BooBooVariable)? - C++
А что означает if _(BooBooVariable)?


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

Или воспользуйтесь поиском по форуму:
OMGHero
2 / 2 / 0
Регистрация: 16.02.2011
Сообщений: 36
03.05.2011, 13:03  [ТС]     что означает этот синтаксис? #15
Цитата Сообщение от Veyron Посмотреть сообщение
Ваш ответ нечетко сформулирован.
Да, я имел ввиду неявное преобразование типов

Добавлено через 1 минуту
Страуструп использует этот прием в функции синтаксического анализатора для калькулятора (если мне не изменяет память)
Да, именно там.
Yandex
Объявления
03.05.2011, 13:03     что означает этот синтаксис?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru