什么是C中的指针解除约束?



我正在学习使用c的递归,有一个关于数组的问题,例如:

void main(){
char str[100];
--snip--
if(*str == 'c')
count++;
--snip--
}

这里的*str是从指向字符串第一个字符的指针中检索到的值str.

我的问题是什么是指针解除约束,我可以这样做:

--snip--
str+=1;
--snip--

获得指向该字符串中另一个字符的下一个位置的新指针?

不能对数组进行自增,但可以对指向数组元素的指针进行自增:

char str[100];
char *pointer = str; //points to the begin
pointer++; //points to the second element
*pointer = 'a'; //sets the second element

str具有类型char [100],在某些表达式中它衰减为(例如行为像)指针,但它不是指针,您不能将其赋值给strstr = ...str+=1;是无效的,你只能给数组的一个元素赋值,而不能给数组本身赋值。

因此,必须创建一个指向数组元素的指针,然后才能对该指针进行自增操作。

相关内容

  • 没有找到相关文章

最新更新