为啥'1234'是错误C常量,而'\123'是对的呢?
另外,字符常量里面不应该只有一个字符吗,为啥里面好像不止一个咧?
懵逼,求捞捞我,感谢。
'1234' 是4个字符,单引号只能表示1个字符。
'\123' 有\,说明是个转义字符,后面的数字是3位8进制数。c规则允许的。
转义字符比较特殊,只有下面一些转义是正确的。
请在一个具体的程序中显示你的例子, 为何他们会报错。
因为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