d
我也是刚做到
\ddd 任意字符 三位八进制
\xhh 任意字符 二位十六进制
首先,C语言这2种字符的表示方法,但不限于这2种。
a='\';这是非法的,如果要表示\则用a='\\',如果要表示'则用a='\''(后面是2个单引号,不是1个双引号)
b='\xbc',符合上面\xhh的情况,合法
c='\0xab',C语言不支持这种表示方法
除了xhh之外,剩下的都当作是8进制处理,包括\0,
c表示指针指向字符串首地址
答案选D
\ddd 任意字符 三位八进制
\xhh 任意字符 二位十六进制
a='\';这是非法的,如果要表示\则用a='\\',如果要表示'则用a='\''(后面是2个单引号,不是1个双引号)
b='\xbc',符合上面\xhh的情况,合法
c='\0xab',C语言不支持这种表示方法
d='\0127 ',除了xhh之外,剩下的都当作是8进制处理,包括\0,所以这里写0127和127是等效的,都是合法的,
这道题选择C,因为d在声明时是指针,指针只能指向地址,在这道题目中d可以指向a,b或者c其中的任何一个,但不能以“d=\0127”这种方式赋值。他的赋值方法可以是“d=&a”或者“*d="\0127" ”
A错了,因为你要输出'\'的话,必须要'\\'才能输出,因为这个上转义字符。其它的都是对的。
把单引号和双引号都去掉试试。