c遗留代码在左边给我指针;在正确的错误上需要积分值

时间:2015-12-01 12:07:59

标签: c++ c visual-studio-2013

我尝试在visual studio 2013中编译lagecy代码 在代码的某些部分,我有这个部分,它给我编译错误,我不明白:

{

    const char* str ="111";
        const char* str1 = "TTTTTT";
        str -= str1;
...
...
}

 \example\example.c(170): error C2297: '-=' : illegal, right operand has type 'const char *'
 \example\example.c(170): error C2114: '-=' : pointer on left; needs integral value on right

这里有什么问题?

2 个答案:

答案 0 :(得分:1)

这段代码看起来很糟糕。它不是有效的C或C ++。我们只能猜测它的意义。也许你可以用以下内容替换最后一行:

str = (void*)(str - str1);

但不保证它能正常工作。

答案 1 :(得分:0)

我认为错误描述是不言自明的。如果左侧有指针,则右侧不能有const char*。这种算术只能使用整数。