我试图获取指向此数组的第四个元素的指针,但这样做时我一直遇到类型不匹配错误。我究竟做错了什么?我该如何解决这个问题?
int main()
{
char str[]="0111010";
str = str+3;
printf("%s",str);
return 0;
}
答案 0 :(得分:0)
该行
str = str + 3;
不是合法的C代码。在C中,您不能将一个数组变量分配给另一个。 (没有根本原因,为什么语言不能使这项工作;它只是不被支持。)
话虽如此,表达式str + 3
是一个完全合法的表达式,它导致指向数组的第三个(零索引)元素。您可以通过编写
printf("%s\n", str + 3);
或写作
char* midPtr = str + 3;
printf("%s\n", midPtr);
两种方法都有效。如果您只需要执行一次,第一个可能更容易,如果您计划多次使用该指针,第二个可能会更容易。