我是C语言的初学者。我试着重新编码记忆集。我的朋友帮我写代码。
void *
ft_memset(void *b, int c, size_t n)
{
unsigned char *str;
str = (unsigned char *) b;
while (n--)
*str++ = (unsigned char) c;
return (b);
}
我对这段代码有几个问题。
为什么
str = (unsigned char*)b
不能是str = unsigned char*b
?当我们声明
str = (unsigned char*)b
。Str是否接收到* B
的内存地址?
提前谢谢,
为什么str =
(unsigned char*)b
不能是str = unsigned char*b
?
因为(unsigned char*)
是强制类型转换。第二个语法无效。
当声明str = (unsigned char*)b。Str是否正在接收* B的内存地址相同?
它不是一个仅用于声明的赋值。b
是void
指针,我们需要用unsignd char
值填充内存。因此,将同样的引用赋值给指针unsigned char
。