正确C常量的正确表示方法

为啥'1234'是错误C常量,而'\123'是对的呢?
另外,字符常量里面不应该只有一个字符吗,为啥里面好像不止一个咧?
懵逼,求捞捞我,感谢。

'1234' 是4个字符,单引号只能表示1个字符。
'\123' 有\,说明是个转义字符,后面的数字是3位8进制数。c规则允许的。
转义字符比较特殊,只有下面一些转义是正确的。

img

请在一个具体的程序中显示你的例子, 为何他们会报错。

因为1234是4个字符,而\123是1个字符啊
\是转义符,你需要复习关于转义的相关知识
\后面跟数字,表示将ascii码转义为字符
如果是\012,表示8进制的12,也就是10进制的10

C Character Constants
A “character constant” is formed by enclosing a single character from the representable character set within single quotation marks (' '). Character constants are used to represent characters in the execution character set.

Syntax

character-constant :

'c-char-sequence'
L'c-char-sequence'

c-char-sequence :

c-char
c-char-sequence c-char

c-char :

Any member of the source character set except the single quotation mark ('), backslash (), or newline character
escape-sequence

escape-sequence :

simple-escape-sequence
octal-escape-sequence
hexadecimal-escape-sequence

simple-escape-sequence : one of

\a \b \f \n \r \t \v
' " \ ?

octal-escape-sequence :

\ octal-digit
\ octal-digit octal-digit
\ octal-digit octal-digit octal-digit

hexadecimal-escape-sequence :

\x hexadecimal-digit
hexadecimal-escape-sequence hexadecimal-digit