以下正确的字符串常量是什么?

来源:百度知道 编辑:UC知道 时间:2024/05/16 06:37:27
以下正确的字符串常量是什么?
A."\\\"
B.'abc'
C.Olympic Games
D.""

主要请讲下A和D.谢谢了!!!

答案为D
D是一个空字符串,仅有字符串结束标志的字符串。
A中第一个字符是'\\',即字符\,而第二个字符'\'中的斜杠表示开始某个转义字符,其后必须还有有效的和它能组成转义字符的其它内容,但现在没有,所以错。

正确答案( D )
字符串在C语言和C++中是用双引号表示的,排除B、C。

A中虽然有双引号,但是在双引号里却是一个转义字符"\",而且"\"是一个不可打印的字符。所以不选A。

可以把""理解为空字符串

根据K&R C 第二版第193页和第194页对Character和String的定义:
A character constant is a sequence of one or more characters enclosed in single quotes.

A string literal,also called a string constant,is a sequence of characters surrounded by double quotes,as in " ... ".

很明显,B和C不符合以上定义。又根据第192页对常量(constants)的定义:
constant:
integer-constant
character-constant
floating-constant
enumeration-constant
也即常量应该是数字、字符、浮点数、枚举常量的组合。
对于A,通过转义,它将被解释成两个反斜线:\\,\也是字符,它的ASCII码的十进制表示是92,所以选项A符合字符串的定义,选项D双引号中没有包含上述3中常量类型中的任何一个,所以它不属于字符串常量。

B

标准答案是A,至于为什么我也不知道。老师给的答案没有解析。