为什么 C/C++ 标准库中的大多数字符串函数都采用char*
指针?
尽管大多数现代编译器(GCC,MSVC)默认情况下都将其视为已签名char
,但标准中甚至没有指定 的char
签名。
何时将字符串视为(可能)有符号字节有意义?AFAIK 在任何字符集中都没有低于零的有意义的字符值。unsigned char
对于某些字符串操作,无论如何都必须将值强制转换为。
那么为什么 stdlibs 使用char*
? 甚至C++
- 特定的方法,例如string::string(const char *);
?