用c的语法卡住-指针

问题描述 投票:2回答:6

如果我们有char *hello-且字符串为"hello"

而且我愿意

char *ptr;
ptr = hello;

然后ptr将指向'h',对吗?

现在我已经完成了一个assignmnet,并使用以下条款完成了它

如果我想将指针移动到下一个聊天者,我将只执行ptr++。如果我想使用指针的值进行检查,则可以使用if(*ptr == '\0')...

[当我在做分配网络时,我们的老师给了我们一些预制的方法,他们使用了类似的东西

*string++ = *s++;

确定,为什么我们要执行*string(它得到一个值)-并与++结合起来>

我希望我能解释不清楚的地方。它只是我设法用ptr ++进行了整个分配,以移至下一个元素或* ptr来检查其值

[如果我们有一个char * hello-字符串是“ hello”,而我做char * ptr; ptr =你好;那么ptr会指向“ h”,对吗?现在我刚刚完成了一个assignmnet,并使用...

c syntax pointers
6个回答
5
投票

成语*s++的意思是“获取所指向的值,然后切换到下一个值”。这样,您可以循环执行检查操作。分配*p++ = *q++*q的值复制到p指向的位置,并将pq都移到下一个位置,因此,下次执行*p++ = *q++时,下一个字符将是复制到第一个后面。依此类推。


4
投票

不完全是。在您最初的问题中,ptr将被设置为指向与hello相同的第一个字符,可能不一定


1
投票

所以我们为什么要做* string(得到一个值)-并与++结合


0
投票

然后ptr将指向h,对吗?


0
投票

然后ptr将指向h,对吗?


0
投票

只是Mark Byers答案的快速补充,他正确地指出了后缀增量(“ a ++”),而不是前缀增量(“ ++ a”)。

© www.soinside.com 2019 - 2024. All rights reserved.