2”不是一个值，因为它可以被化简为表达式“3”。表达式“3”不能够继续化简，因此它是一个值。表达式既有类型（type）属性，又有值分类（value categories）属性。两种属性彼此独立。也就是说，对每一种类型的表达式，都有各种值分类。大多数编程语言支持几种常见的值。
赋值：左值和右值.一些语言使用左值（）和右值（）的概念。左值具有确定的、可以被获得的内存地址。这意味着左值可以是变量，也可以是对指向特定内存地址的指针解引用（dereference）的结果。例如C语言的表达