首先,我有一个功能,我有unsigned char*
类型的标志。例如,对于Abcdef!?
,Unicode中每个符号[65 0] [98 0] [99 0] [100 0] [101 0] [102 0] [33 0] [63 0]
2个字节。
当我使用for(unsigned char i=0; i<17; i++) printf("%c", pointer[i]);
时一切正常,它会显示Abcdef!?
。但是当我使用printf("%s" pointer);
时,它只给我A
而没有别的。你能告诉我为什么吗?
答案 0 :(得分:5)
因为printf("%s", pointer)
字面意思是:从char
处存储的pointer
开始每'\0'
打印,直到遇到'\0'
。
'A'
之后紧跟.child
,因此只打印第一个字符。