如何增加此字符串的基址?

时间:2017-03-29 08:16:39

标签: c arrays string pointers

我试图获取指向此数组的第四个元素的指针,但这样做时我一直遇到类型不匹配错误。我究竟做错了什么?我该如何解决这个问题?

    int main()
    {
        char str[]="0111010";
        str = str+3;
        printf("%s",str);
        return 0;
    }

1 个答案:

答案 0 :(得分:0)

该行

str = str + 3;

不是合法的C代码。在C中,您不能将一个数组变量分配给另一个。 (没有根本原因,为什么语言不能使这项工作;它只是不被支持。)

话虽如此,表达式str + 3是一个完全合法的表达式,它导致指向数组的第三个(零索引)元素。您可以通过编写

来打印它
printf("%s\n", str + 3);

或写作

char* midPtr = str + 3;
printf("%s\n", midPtr);

两种方法都有效。如果您只需要执行一次,第一个可能更容易,如果您计划多次使用该指针,第二个可能会更容易。