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