unsined char * 和 char * 有什么区别?
RT,有什么区别?
可否举例说明?
[解决办法]
char*可以用strlen,strcpy等字符串函数,unsined char *不行
不同的编译器,char*指向的有可能是signed char或unsined char
[解决办法]
char *结束有结束符,而unsined char *没有
[解决办法]
char*可以用strlen,strcpy等字符串函数,unsined char *不行
不同的编译器,char*指向的有可能是signed char或unsined char
[解决办法]
个人觉得就简单类型的指针而言, 没有什么不同的, 就像malloc返回的都是void *, 用什么指针来接收不一样? 都是以字节来表示的, 不同的是指针的移动不同, 对其解引用的值不同而已吧
前面说的unsigned char *不能用str*调用, 只能说str*对参数类型有相应的要求而已, 强转一下就可以调了, 其实内容那是那个内容
[解决办法]
[解决办法]
char cbuf[] = "abcd", 拷到u_char ucbuf[5]就不是"abcd"了?
[解决办法]
原本unsigned char和signed char应该是用来表达unsigned/signed byte的意义的.而char则表示字符.
否则,char就不会单独拿出来和上面两种加以区别.
所以,char*的意义应该是字符串指针,而unsigned char*则为无符号8bit数据指针.
[解决办法]
楼主真要追根究底 可以去问下 supermegaboy
[解决办法]
char既不是signed char,也不是unsigned char,不过可以在编译器里面设置是有符号还是无符号,一般默认为有符号。对于char、short的数值操作,会自动升级为int数值,再进行下一步计算。这个时候,默认为有符号还是无符号就会起作用了。