【发布时间】:2011-08-21 06:42:12
【问题描述】:
我正在使用unsigned char 的两个缓冲区,当我使用函数strcpy 时,出现编译错误,提示“unsigned char * 到 char * 的无效转换”。谁能告诉我无符号缓冲区与有符号缓冲区对输出有什么区别?这是我尝试过的程序。
main()
{
unsigned char buff[20] = "Michael";
unsigned char dst[20] = "Jackson";
strcpy(buff,dst);
printf("The string is %s\n",buff);
}
现在,当我将 strcpy 中传递的参数类型转换为 (char *) 时,该程序可以正常工作,如下所示
main()
{
unsigned char buff[20] = "Michael";
unsigned char dst[20] = "Jackson";
strcpy((char *)buff,(char *)dst);
printf("The string is %s\n",buff);
}
第二个问题:在字符串函数中对 char* 进行类型转换会产生任何问题吗?
如果您需要更多输入,请告诉我。
【问题讨论】:
-
@Yahia 同意:Maddy,你有几个悬而未决的问题没有被接受;他们真的没有回答您的问题还是您只是不熟悉它的工作原理?