題:在C語言中,以下合法的字符常量是
A. "\n"
B. 'ab'
C. '\x43'
D. '\084'
正確答案:C
解析:
A 有雙引號,是字符串
B 單引號里只能一個字符
D \0表明是8進制,只能出現(xiàn)0--7的數(shù)字
知識點(1)
char a = 'k';a是字符,占一個字節(jié);char a[] = "k" a是字符串,占兩個字節(jié);C語言在定義字符和字串的時候有不同,會在字符串變量的末尾加上‘\0’
知識點(2)
字符串也可以用作常量,其中“\”是轉(zhuǎn)義字符,如"\x23G"會輸出字符串"#G",因為十六進制數(shù)0x23的ASCII碼是35,對應(yīng)的字符是‘#’。但寫成"\x234"就會出錯,因為十六進制的轉(zhuǎn)義字符的格式是"\xhh",只接收兩位十六進制數(shù),如果第三位是十六進制數(shù)便會報“超限”錯誤,但若第三位不是十六進制數(shù),如“G",便會將其直接處理成字符G,結(jié)果就是"\x23G"的輸出結(jié)果是"#G"。
知識點(3)
函數(shù)調(diào)用時,char a = '1',這里的a是一個變量,傳值,修改的規(guī)則都和int一致;char *s = "123"或char s[]="123",這里的s是一個指針,fun(s)傳的是指針,不是"123"這個字符串。