首先,我有一个函数,我将符号存储在 unsigned char*
中类型。例如 Abcdef!?
它是 [65 0] [98 0] [99 0] [100 0] [101 0] [102 0] [33 0] [63 0]
Unicode 中每个符号 2 个字节。
当我使用 for(unsigned char i=0; i<17; i++) printf("%c", pointer[i]);
时一切正常,显示Abcdef!?
.但是当我使用 printf("%s" pointer);
它只给我A
没有别的。你能告诉我为什么吗?
最佳答案
因为 printf("%s", pointer)
的字面意思是:从存储在 pointer
的那个开始打印每个 char
直到遇到 '\0'
。
在 'A'
之后有一个 '\0'
,所以只打印第一个字符。
关于c - 为什么 printf 只显示第一个字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41896288/