首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

unsined char * 和 char * 有什么区别?解决方法

2012-04-08 
unsined char * 和 char * 有什么区别?RT,有什么区别?可否举例说明?[解决办法]char*可以用strlen,strcpy等

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*对参数类型有相应的要求而已, 强转一下就可以调了, 其实内容那是那个内容
[解决办法]

探讨
...类型不同强转一下就行?...
强转应该尽量避免使用.如果C语言觉得这个转换合理,自然会提供相应的隐式转换.
unsigned char 和 char 是不同的.

[解决办法]
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数值,再进行下一步计算。这个时候,默认为有符号还是无符号就会起作用了。

热点排行