题:在C语言中,以下合法的字符常量是
A. "\n"
B. 'ab'
C. '\x43'
D. '\084'
正确答案:C
解析:
A 有双引号,是字符串
B 单引号里只能一个字符
D \0表明是8进制,只能出现0--7的数字
知识点(1)
char a = 'k';a是字符,占一个字节;char a[] = "k" a是字符串,占两个字节;C语言在定义字符和字串的时候有不同,会在字符串变量的末尾加上‘\0’
知识点(2)
字符串也可以用作常量,其中“\”是转义字符,如"\x23G"会输出字符串"#G",因为十六进制数0x23的ASCII码是35,对应的字符是‘#’。但写成"\x234"就会出错,因为十六进制的转义字符的格式是"\xhh",只接收两位十六进制数,如果第三位是十六进制数便会报“超限”错误,但若第三位不是十六进制数,如“G",便会将其直接处理成字符G,结果就是"\x23G"的输出结果是"#G"。
知识点(3)
函数调用时,char a = '1',这里的a是一个变量,传值,修改的规则都和int一致;char *s = "123"或char s[]="123",这里的s是一个指针,fun(s)传的是指针,不是"123"这个字符串。