C语言中,下列不合法的常量是

'?'
'abc'
"Turbo c"
'\0x32'
'\123'
''''
''△''
'△'
''\\\''
''a''
'\\'
'\0123'
'\xaf'
'王’
‘’李伟民‘’
‘’\xaif‘’
答案是2、12、14、16
为什么3、10是合法的,为什么16不合法,7、8有什么区别,9、11怎么判断,14、15怎么判断是否合法,
答案是'abc'、'\0123'、'王’、‘’\xaif‘’
为什么‘’\xaif‘’不合法

简单来说,“”是用来表示字符串的,而‘’是用来表示字符的。
用字符串的形式来表示字符是可以的,但是使用字符的形式来表示多字符的字符串是不可以的。追问

“\xaif”为什么是不合法的?

追答

因为'\x'这个字符,而\的字符是'\\'

因为没有'\x'这个字符,而\的字符是'\\'

追问

也就是说字符串中使用的字符也要在ascii码中找到对应吗?可是ascii码中不论是/或是\都有对应的数字啊

追答

是的,不然程序怎么识别。所以说那个是错的,应该是“\\xaif”才是合法的?

追问

那假如是“/xaif”是合法的吗?

追答

是,是有'/'这个字符的。

我好像帮你解答的有问题,\x后面的是十六进制,而十六进制的a是回车字符,i不属于十六进制。所以这个字符串最后显示的是回车加if。

不好意思,之前给你回答错了,给你产生了误导。至于这个是否为常量,我现在也不知道了。

温馨提示:答案为网友推荐,仅供参考