c - 如何增加这个字符串的基地址?

标签 c arrays string pointers

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

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

最佳答案

线

str = str + 3;

不是合法的 C 代码。在 C 语言中,您不能将一个数组变量赋值给另一个。 (没有根本原因说明该语言无法完成这项工作;它只是不受支持。)

也就是说,表达式 str + 3 是一个完全合法的表达式,它导致指向数组的第三个(零索引)元素的指针。您可以通过书写打印它

printf("%s\n", str + 3);

或者写

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

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

关于c - 如何增加这个字符串的基地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43088017/

相关文章:

c - 如何使用C编程语言删除文本文件中的特定行

c - 快速整数到十进制转换

c - 两个无符号整数之差的 printf 格式

PHP 不区分大小写的 in_array 函数

string - 如何在Groovy中将列表转换为字符串并删除括号而不使用replace?

c - 为什么我在获取时间戳时得到负值?

java - 如何保存ArrayList <List>

arrays - 在未排序的数组中找到小于平均值的差异?

javascript - 有 JavaScript strcmp() 吗?

java - 从 ArrayList 中删除一个对象