求解答void星型的指针强转类型后为什么还是不可修改的左值?
//模拟实现memmove
void* my_memmove(void* des, void* src, size_t num)
{
assert(des && src);
void* ret = des;
if (des < src)
{
//从前往后
while (num--)
{
*((char*)des) = *((char*)src);
(char*)des = (char*)des + 1;
(char*)src = (char*)src + 1;
}
}
else
{
//从后往前
while (num--)
{
*((char*)des + num) = *((char*)src + num);
}
}
return ret;
}
你上面定义了const常量,常量不能休改的
强制转换产生一个右值,右值是不可修改的