unsigned char流的作用是什么。
如果我有一个如下所示的unsigned char流,如何打印其中的值。
对于普通的字符流或字符串,我可以使用%s进行打印,但这个怎么办。
提前感谢。
unsigned char *ptr ="(some value)"
unsigned char
和普通的char
之间没有明显的区别。后者可以是有符号的也可以是无符号的,这是实现定义的。但是,所有的符号表始终具有正索引。因此,当您处理字符串时,您始终可以安全地在unsigned char
和char
之间进行转换。(标准中这两种类型之间的指针强制转换被严格定义为行为不良,但实际上,在任何系统上都可以正常工作。)printf("%s", ptr);
将正常工作。一个无符号字符数组通常表示原始字节数据,如果您想使用%s
将其输出为字符串,那么您可能会得到一些无意义的乱码字符。
如果您真的希望查看这些值,我建议将单个字节转换为short
,然后使用%i
输出它。
仅代表个人观点。
%s
会正常工作。另外,一般情况下char
可能是有符号的,也可能是无符号的。 - Keith%s
仅需要“字符类型的数组”,可以是char、signed char或unsigned char
。 - Keiths
:如果没有l
长度修饰符,则参数应该是指向字符类型数组初始元素的指针。 - jxh