我的书将表达式定义为"一个具有值"的编程语句。和一个直接写入程序源代码的数据,但我仍然难以区分这两者。例如,3 + 3是一个文字AND表达式,还是只是一个表达式?为什么呢?
int number = 2+2;
整个陈述是一个表达式,还是恰当的值?为什么?整个语句的值为4,所以整个语句肯定是表达式吗?
在我看来,表达式通常涉及运算符,文字涉及单个数据,如4," Hello",' A'等。我也理解文字可以是一个表达式,因为一元运算符,如 - 或+。我是否正确地想到这一点?
答案 0 :(得分:1)
表达式是指定计算的运算符和操作数序列。表达式可能会导致值,并可能导致副作用。
文字是以下之一:
我不会试图给出每一个的正式定义,但每个基本上只是一个值。
还有一种类型的文字虽然有些特殊:
尽管用户定义的文字是文字,但文字的值是根据评估表达式的结果定义的。
参考文献:
表达式:[expr]
文字:[lex.literal]
(对于那些不熟悉它的人,方括号中的标记是用于指定C ++标准中的部分的符号)。
答案 1 :(得分:0)
例如,文字就像数字7。转换为汇编代码时,文字7在代码中仍然非常明显:
MOV R1, 7 ; move the number 7 as a value into register R1
表达式是需要评估的东西。一般来说,您会发现C=A+B;
的某些内容,其中A+B
是表达式。
表达式是一系列运算符及其操作数 指定计算。表达评估可以产生结果 (例如,2 + 2的评估产生结果4)并且可以生成 副作用(例如评价std :: printf("%d",4)打印出 人物' 4'在标准输出上。)
http://en.cppreference.com/w/cpp/language/expressions http://en.cppreference.com/w/cpp/language/expressions#Literals