A literal is a primary expression. Its type depends on its form. A string literal is an lvalue; all other literals are prvalues.