什么是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;无效,您只能将某些内容分配给数组的元素,而不是数组本身。

因此,您必须创建一个指向数组元素的指针,然后才能递增该指针。


以上是什么是C中的指针解引用?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>