2015-09-04 3 views
5

Я знаю, что, например, '5' является литеральным типом char, но является 5 * 5 буквально? Это выражение, однако оно имеет фиксированное значение.Является ли 5 ​​* 5 буквальным или просто выражением?

+7

Вы можете указать какой язык вы используете. –

+1

И, возможно, этот парсер/компилятор вы используете. Интеллектуальный должен автоматически преобразовывать '5 * 5' в' 25' при работе с математическими операциями. –

+1

@AndrewGrimm Я предполагаю, что это своего рода очевидная его Java, рассматривающая тег #java. – Craig

ответ

1

Я не думаю, что вы можете называть это буквальным. Возможно, некоторые компиляторы будут относиться к нему так же, как к литеральному, см. Комментарий о том, какой язык вы используете.

12

Как описано в Java Language Specification §15.28, это особый случай выражения, называемый «константа постоянной времени компиляции». Это не литерал.

+2

В байтовом коде нельзя указать, было ли это написано как '5 * 5' или' 25' +1. –

1

«Literal» - это грамматический термин, а не семантический. Это основной строительный блок, который обозначает постоянное значение.

Хотя по спецификации 5 * 5 и 25 означает точно такое же, грамматически первое представляет собой двоичное выражение, включающее два литерала и оператор, а второе - буквальное.

0

Я не уверен, но разве эти термины не работают?

  • при использовании какого-то значения, чтобы определить точно значение переменного «в прямого пути» следует назвать «буквальным»

    var num =5; var stringLabel = "someText"; т.д.

  • при использовании некоторой формулы или предписания, его следует называть «выражением»

    var result = 5*5; var res2 = a*x;

Но курс- в результате что также постоянная си он также может быть буквальным на самом деле ..

Вот как получить его, по крайней мере мне ..

Это просто о сроках - также, как и в java, есть методы, «языки C» - это функции и т. д. - в значениях его тоже одни и те же вещи, поэтому зависит только от того, что вы будете терпеть вообще: D

Смежные вопросы