C++语言合法的字符常量,解释a和b

A“\0”以双引号界定,是字符串,错。
B '054' 界定了3个字符,错。
C '\x89' 是采用16进制的转义字符,正确。
D '\092'看似转义字符,但是,以0开头的是8进制字符,9不合法,所以还是界定了3个字符,\0,9,2,错。

下列哪个是C++语言的合法的字符常量__________.A "\0" B '054' C '\x89' D '\092
题目没找全吧。
要求字符常量,就是单个字符,用单引号''标识,所以A应该改为'\0',至于B,对CD的解释可以证明B错误,因为B没有反斜杠\,不是转义字符,所以054是三个字符,不能放在一个单引号''内。